falk@juist:/tmp% cat test.c void f () { l: int; } falk@juist:/tmp% gcc -v -std=c99 -c test.c Reading specs from /usr/local/stow/gcc-2003.08.19/bin/../lib/gcc/alphaev68-unknown-linux-gnu/3.4/specs Configured with: ../configure --disable-nls --enable-languages=c++ Thread model: posix gcc version 3.4 20030819 (experimental) /usr/local/stow/gcc-2003.08.19/bin/../libexec/gcc/alphaev68-unknown-linux-gnu/3.4/cc1 -quiet -v -iprefix /usr/local/stow/gcc-2003.08.19/bin/../lib/gcc/alphaev68-unknown-linux-gnu/3.4/ test.c -quiet -dumpbase test.c -mcpu=ev67 -auxbase test -std=c99 -version -o /tmp/ccfMHVFe.s ignoring nonexistent directory "/usr/local/stow/gcc-2003.08.19/bin/../lib/gcc/alphaev68-unknown-linux-gnu/3.4/../../../../alphaev68-unknown-linux-gnu/include" ignoring nonexistent directory "NONE/include" ignoring duplicate directory "/usr/local/lib/gcc/alphaev68-unknown-linux-gnu/3.4/include" ignoring nonexistent directory "/usr/local/lib/gcc/alphaev68-unknown-linux-gnu/3.4/../../../../alphaev68-unknown-linux-gnu/include" #include "..." search starts here: #include <...> search starts here: /usr/local/stow/gcc-2003.08.19/bin/../lib/gcc/alphaev68-unknown-linux-gnu/3.4/include /usr/local/include /usr/include End of search list. GNU C version 3.4 20030819 (experimental) (alphaev68-unknown-linux-gnu) compiled by GNU C version 3.4 20030819 (experimental). GGC heuristics: --param ggc-min-expand=64 --param ggc-min-heapsize=64064 test.c: In function `f': test.c:3: error: syntax error before "int" test.c:4: internal compiler error: tree check: expected block, have error_mark in finish_function, at c-decl.c:6089 Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://gcc.gnu.org/bugs.html> for instructions.
I can confirm this on the mainline (20030820). If checking is turned off we get a stack overflow.
Does it ICE on the branch too?
From Phil's regression hunter: Search converges between 2001-06-03-trunk (#22) and 2001-06-10-trunk (#23).
This is an ICE after a valid error, so I've pushed it back to GCC 3.4.
Looks fixed to me. $ ../cc1 --version GNU C version 3.4.0 20031223 (experimental) (i686-pc-linux-gnu) compiled by GNU C version 3.4.0 20031223 (experimental). GGC heuristics: --param ggc-min-expand=56 --param ggc-min-heapsize=50000 $ ../cc1 -std=c99 t.c f t.c: In function `f': t.c:3: error: parse error before "int" Execution times (seconds) parser : 0.01 (50%) usr 0.00 ( 0%) sys 0.01 (50%) wall TOTAL : 0.02 0.00 0.02 $
Fixed by me via the C99 fix, will add a testcase.
Subject: Bug 11995 CVSROOT: /cvs/gcc Module name: gcc Changes by: pinskia@gcc.gnu.org 2003-12-23 10:33:01 Modified files: gcc/testsuite : ChangeLog Added files: gcc/testsuite/gcc.dg: 20031223-1.c Log message: 2003-12-21 Andrew Pinski <pinskia@physics.uc.edu> PR c/11995 * gcc.dg/20031223-1.c: New test. Patches: http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gcc&r1=1.3304&r2=1.3305 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/20031223-1.c.diff?cvsroot=gcc&r1=NONE&r2=1.1