# HG changeset patch # User lbessard # Date 1245410846 -7200 # Node ID 1c0c7a664fc26ae9768e6b39fde77ec05dc69011 # Parent 66d501d7b67df47784ac87d3ea4949b6a42bf0d8 Fix problems with direct variables in expression while compiling resulting expression type diff -r 66d501d7b67d -r 1c0c7a664fc2 absyntax_utils/search_expression_type.cc --- a/absyntax_utils/search_expression_type.cc Fri Jun 19 13:26:31 2009 +0200 +++ b/absyntax_utils/search_expression_type.cc Fri Jun 19 13:27:26 2009 +0200 @@ -192,20 +192,13 @@ /* B 1.4.1 - Directly Represented Variables */ /********************************************/ void *search_expression_type_c::visit(direct_variable_c *symbol) { - switch (symbol->value[2]) { - case 'X': // bit - 1 bit - return (void *)&bool_type_name; - case 'B': // byte - 8 bits - return (void *)&byte_type_name; - case 'W': // word - 16 bits - return (void *)&word_type_name; - case 'D': // double word - 32 bits - return (void *)&dword_type_name; - case 'L': // long word - 64 bits - return (void *)&lword_type_name; - default: // if none of the above, then the empty string was used <=> boolean - return (void *)&bool_type_name; - } + symbol_c *res; + + /* Nope, now we assume it is a variable, and determine its type... */ + res = search_varfb_instance_type->get_type(symbol); + if (NULL != res) return res; + + return NULL; } /*************************************/