meyering@CS.UTEXAS.EDU (Jim Meyering) (10/29/89)
/* * Using unmodified gcc-1.36, config.gcc {sun3,sun4-os4}: * * This program causes cc1 to generate a signal 10 (or 11) when * compiled with both the options -Wswitch and -traditional. * If c has any type other than `unsigned char' or 'unsigned char *' * gcc runs fine. GNU regex.c (in sed-1.06) has code like this. * * A suggestion to people using gcc: * create an executable named gcc with the 2 lines: * #!/bin/sh * /p/bin/gcc -Wswitch "$@" * where you'd replace /p/bin/gcc with the absolute pathname of the * binary executable on your system. Then put this gcc in a directory * that precedes (in your $PATH) that of the binary. */ void foo(c) unsigned char c; { typedef enum {TRUE, FALSE} Bool; switch ((Bool) c) { case TRUE: break; } } /p/bin/gcc -v -Wswitch -traditional -c foo.c -o foo.o gcc version 1.36 /p/lib/gcc-1.36/gcc-cpp -v -undef -D__GNUC__ -Dsparc -Dsun -Dunix -D__sparc__ -D__sun__ -D__unix__ -traditional foo.c /usr/tmp/cca01286.cpp GNU CPP version 1.36 /p/lib/gcc-1.36/gcc-cc1 /usr/tmp/cca01286.cpp -quiet -dumpbase foo.c -Wswitch -traditional -version -o /usr/tmp/cca01286.s GNU C version 1.36 (sparc) compiled by GNU C version 1.36. default target switches: -mfpu -mepilogue /p/bin/gcc: Program cc1 got fatal signal 11. --- Jim Meyering meyering@cs.utexas.edu