[Bug c++/11437] ICE in lookup_name_real
PLEASE REPLY TO gcc-bugzilla@gcc.gnu.org ONLY, *NOT* gcc-bugs@gcc.gnu.org.
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11437
------- Additional Comments From neroden at gcc dot gnu dot org 2003-07-09 03:54 -------
The bug will also show up with __imag and __real.
If I replace __imag__ with something like int, the backtrace when the error occurs
is the same from the top down to this point:
#29 0x080fdedd in cp_parser_expression_statement (parser=0x401ab4c0)
at ../../gcc-3.4-CVS/gcc/cp/parser.c:5747
#30 0x080fdc6a in cp_parser_statement (parser=0x401ab4c0)
at ../../gcc-3.4-CVS/gcc/cp/parser.c:5660
In the case where it gets to the correct error message, it instead goes:
#7 0x080f90e9 in cp_parser_declaration_statement (parser=0x40133144)
at ../../gcc-main/gcc/cp/parser.c:6079
#8 0x080f8760 in cp_parser_statement (parser=0x4018a4c0)
at ../../gcc-main/gcc/cp/parser.c:5501
In other words, it fails to parse it as a declaration statement, and tries to parse it as an expression statement.
Which seems quite wrong to me. For some cryptic reason, it doesn't recognize it as a type name.
The actual ICE is caused by something else:
#2 0x0806d002 in lookup_function_nonclass (name=0x0, args=0xe)
at ../../gcc-3.4-CVS/gcc/cp/decl.c:5963
#3 0x080531ca in build_new_op (code=132, flags=3, arg1=0x401ad804, arg2=0x0,
arg3=0x0) at ../../gcc-3.4-CVS/gcc/cp/call.c:3712
Clearly we shouldn't be looking up a NULL name under any circumstances. How this happens is beyond me.
------- You are receiving this mail because: -------
You reported the bug, or are watching the reporter.
Reply to: