pardo@june.cs.washington.edu (David Keppel) (02/19/89)
SUMMARY: Missing ';' causes rest of file to be ignored. GCC: 1.30 TARGET: VAX/ULTRIX Built using standard shell script. The following program has an (erroneous) declaration of `struct bug'. There is no semicolon after the token `foo'. The file after the following extern declaration is ignored. I believe that this is an illegal construct, so gcc should print a diagnostic rather than compiling the file. If the construct is legal, then it should not be ignoring the rest of the file. I haven't tried this with 1.33, so it might be fixed already. gcc -g -W -Wimplicit -Wreturn-type -Wcomment -Wunused -v -c bug.c gcc version 1.30 /uns/src/GNU/g++/lib/gcc-cpp -v -undef -D__GNU__ -D__GNUC__ -Dvax -Dunix -Wcomment bug.c /tmp/cc016443.cpp GNU CPP version 1.30 /uns/src/GNU/g++/lib/gcc-cc1 /tmp/cc016443.cpp -quiet -dumpbase bug.c -g -W -Wimplicit -Wreturn-type -Wcomment -Wunused -version -o /tmp/cc016443.s GNU C version 1.30 (vax) compiled by GNU C version 1.30. as /tmp/cc016443.s -o bug.o Loading a.out ... Undefined: _main *** Error code 1 Stop. bug.c: typedef struct bug { int y; } foo extern int exit(); int buggy(x, y) buggy(y, x) int x, y; { if (x) return y; return x; } int main() { 1 2 3 4, who\'s that knocking on my door? buggy(1); exit(0); } end of bug.c ;-D on ( A small matter of atoms ) Pardo -- pardo@cs.washington.edu {rutgers,cornell,ucsd,ubc-cs,tektronix}!uw-beaver!june!pardo