$ cat pushdecl.c
void bar () { { if (foo) foo (); } }
$ gcc -O pushdecl.c
pushdecl.c: In function ‘bar’:
pushdecl.c:1: error: ‘foo’ undeclared (first use in this function)
pushdecl.c:1: error: (Each undeclared identifier is reported only once
pushdecl.c:1: error: for each function it appears in.)
pushdecl.c:1: internal compiler error: tree check: expected class
‘declaration’, have ‘exceptional’ (error_mark) in
pushdecl, at c-decl.c:1989
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://www.suse.de/feedback> for instructions.
--
Summary: [4.0 regression] ICE in pushdecl
Product: gcc
Version: 4.0.0
Status: UNCONFIRMED
Keywords: ice-on-invalid-code
Severity: normal
Priority: P2
Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: schwab at suse dot de
CC: gcc-bugs at gcc dot gnu dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18946