diff -r c6959b0f539d -r 289256ec66f1 stage4/generate_cc/search_constant_type.cc --- a/stage4/generate_cc/search_constant_type.cc Tue May 29 09:45:50 2007 +0200 +++ b/stage4/generate_cc/search_constant_type.cc Thu Jun 14 08:58:10 2007 +0200 @@ -51,6 +51,8 @@ static dt_type_name_c dt_type_name; static tod_type_name_c tod_type_name; + static constant_real_type_name_c constant_real_type_name; + static constant_int_type_name_c constant_int_type_name; public: symbol_c *get_type(symbol_c *constant) { @@ -65,11 +67,11 @@ /******************************/ /* B 1.2.1 - Numeric Literals */ /******************************/ - void *visit(real_c *symbol) {return (void *)&real_type_name;} - void *visit(integer_c *symbol) {return (void *)&int_type_name;} - void *visit(binary_integer_c *symbol) {return (void *)&int_type_name;} - void *visit(octal_integer_c *symbol) {return (void *)&int_type_name;} - void *visit(hex_integer_c *symbol) {return (void *)&int_type_name;} + void *visit(real_c *symbol) {return (void *)&constant_real_type_name;} + void *visit(integer_c *symbol) {return (void *)&constant_int_type_name;} + void *visit(binary_integer_c *symbol) {return (void *)&constant_int_type_name;} + void *visit(octal_integer_c *symbol) {return (void *)&constant_int_type_name;} + void *visit(hex_integer_c *symbol) {return (void *)&constant_int_type_name;} void *visit(numeric_literal_c *symbol) {return (void *)((symbol->type!=NULL)?symbol->type:symbol->value->accept(*this));} @@ -122,6 +124,8 @@ dt_type_name_c search_constant_type_c::dt_type_name; tod_type_name_c search_constant_type_c::tod_type_name; +constant_real_type_name_c search_constant_type_c::constant_real_type_name; +constant_int_type_name_c search_constant_type_c::constant_int_type_name;