The following C++ generates an ICE with today's trunk when -g is passed: extern int strlen (const char *__s) throw(); namespace std { using ::strlen; } void foo() { using std::strlen; } [EMAIL PROTECTED] g++ -g -c t.cpp t.cpp: In function ?void foo()?: t.cpp:9: internal compiler error: tree check: expected class ?declaration?, have ?exceptional? (@@dummy) in lookup_decl_die, at dwarf2out.c:5415 Obviously, this is a reduction of a usual pattern, #include <cstring> void foo() { using std::strlen; } The same result is obtained when strlen is replaced by another libc-function like printf. If 'strlen' is replaced by anything else (like 'bar', say), everything is fine.
-- Summary: [4.0 regression] ICE, dwarf2, using statement, libc functions Product: gcc Version: 4.0.0 Status: UNCONFIRMED Severity: normal Priority: P2 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: jan at etpmod dot phys dot tue dot nl CC: gcc-bugs at gcc dot gnu dot org GCC build triplet: x86_64-suse-linux GCC host triplet: x86_64-suse-linux GCC target triplet: x86_64-suse-linux http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19622