[gnu.gcc.bug] ``Quality of implementation'', -Wall

pardo@JUNE.CS.WASHINGTON.EDU (10/02/89)

GCC: 1.36
MACHINE: VAX/Ultrix 3.0
Configured w/ `config.gcc'

The following code fragment causes `cc' and `CC' (AT&T C++) to issue a
warning message about unreached initializers.  `gcc -Wall' does not.
`gcc' behaves correctly but it would be nice if it issued a warning.

foo.c:
	/* From Richard O'Keefe (ok@cs.mu.oz.au), comp.std.c */

	main(argc) int argc;
	{
	    switch (argc) {
		    int i = 1;
		    double x = 2.0;
		 case 1:
		 case 2:
		     exit(i);
		 default:
		     exit(!!x);
	     }
	 }

gcc -v -Wall foo.c
gcc version 1.36
 /uns/usr/local/lib/gcc-cpp -v -undef -D__GNUC__ -Dvax -Dunix -D__vax__ -D__unix__ -Wall foo.c /usr/tmp/cca08978.cpp
GNU CPP version 1.36
 /uns/usr/local/lib/gcc-cc1 /usr/tmp/cca08978.cpp -quiet -dumpbase foo.c -Wall -version -o /usr/tmp/cca08978.s
GNU C version 1.36 (vax) compiled by GNU C version 1.36.
default target switches: -munix
foo.c: In function main:
foo.c:3: warning: return-type defaults to `int'
foo.c:10: warning: implicit declaration of function `exit'
foo.c:14: warning: control reaches end of non-void function
 as -o foo.o /usr/tmp/cca08978.s
 ld /lib/crt0.o foo.o /uns/usr/local/lib/gcc-gnulib -lc

	;-D on  ( Kernel and GNUser priv )  Pardo