g++ 3.0 doesn't know that exit() doesn't return on Solaris
Martin Buchholz
martin@xemacs.org
Sun Jun 3 05:15:00 GMT 2001
On Solaris 2.7, both gcc 3.0 and g++ 2.95.3 know that exit() has
attribute noreturn, but g++ 3.0 does not.
Self-explanatory shell transcript follows:
(martin@polgar) ~/src $ cat return.c
#include <stdlib.h>
void foo (void) __attribute__ ((noreturn));
void foo (void) { exit(1); }
(martin@polgar) ~/src $ g++ -c -Wall return.c
(martin@polgar) ~/src $ /project/xemacs/import/test-gcc/3.0/sparc-sun-solaris2.7/install/bin/g++ -c -Wall return.c
return.c: In function `void foo()':
return.c:3: warning: `noreturn' function does return
(martin@polgar) ~/src $ uname -a
SunOS polgar.m17n.org 5.7 Generic_106541-08 sun4u sparc SUNW,Ultra-5_10
(martin@polgar) ~/src $ /project/xemacs/import/test-gcc/3.0/sparc-sun-solaris2.7/install/bin/g++ -v -c -Wall return.c
Reading specs from /project/xemacs/import/test-gcc/3.0/sparc-sun-solaris2.7/install/lib/gcc-lib/sparc-sun-solaris2.7/3.0/specs
Configured with: /project/xemacs/import/gcc/configure --enable-languages=c,c++ --disable-nls --prefix=/project/xemacs/import/test-gcc/3.0/sparc-sun-solaris2.7/install
Thread model: posix
gcc version 3.0 20010523 (prerelease)
/project/xemacs/import/test-gcc/3.0/sparc-sun-solaris2.7/install/lib/gcc-lib/sparc-sun-solaris2.7/3.0/cc1plus -v -D__GNUC__=3 -D__GNUC_MINOR__=0 -D__GNUC_PATCHLEVEL__=0 -Dsparc -Dsun -Dunix -D__svr4__ -D__SVR4 -D__sparc__ -D__sun__ -D__unix__ -D__svr4__ -D__SVR4 -D__sparc -D__sun -D__unix -Asystem=unix -Asystem=svr4 -D__STDC_HOSTED__=1 -Wall -D_XOPEN_SOURCE=500 -D_LARGEFILE_SOURCE=1 -D_LARGEFILE64_SOURCE=1 -D__EXTENSIONS__ return.c -D__GNUG__=3 -D_GNU_SOURCE -D__GXX_DEPRECATED -D__EXCEPTIONS -D__GXX_ABI_VERSION=100 -quiet -dumpbase return.c -Wall -version -o /var/tmp/cc9CfpW8.s
GNU CPP version 3.0 20010523 (prerelease) (cpplib) (sparc)
GNU C++ version 3.0 20010523 (prerelease) (sparc-sun-solaris2.7)
compiled by GNU C version 3.0 20010523 (prerelease).
ignoring nonexistent directory "/project/xemacs/import/test-gcc/3.0/sparc-sun-solaris2.7/install/sparc-sun-solaris2.7/include"
#include "..." search starts here:
#include <...> search starts here:
/project/xemacs/import/test-gcc/3.0/sparc-sun-solaris2.7/install/include/g++-v3
/project/xemacs/import/test-gcc/3.0/sparc-sun-solaris2.7/install/include/g++-v3/sparc-sun-solaris2.7
/project/xemacs/import/test-gcc/3.0/sparc-sun-solaris2.7/install/include/g++-v3/backward
/usr/local/include
/project/xemacs/import/test-gcc/3.0/sparc-sun-solaris2.7/install/lib/gcc-lib/sparc-sun-solaris2.7/3.0/include
/usr/include
End of search list.
return.c: In function `void foo()':
return.c:3: warning: `noreturn' function does return
/usr/ccs/bin/as -V -Qy -s -o return.o /var/tmp/cc9CfpW8.s
/usr/ccs/bin/as: WorkShop Compilers 5.0 98/12/21
(martin@polgar) ~/src $ g++ -v -c -Wall return.c
Reading specs from /usr/local/lib/gcc-lib/sparc-sun-solaris2.7/2.95.3/specs
gcc version 2.95.3 20010112 (prerelease)
/usr/local/lib/gcc-lib/sparc-sun-solaris2.7/2.95.3/cpp0 -lang-c++ -v -D__GNUC__=2 -D__GNUG__=2 -D__GNUC_MINOR__=95 -D__cplusplus -Dsparc -Dsun -Dunix -D__svr4__ -D__SVR4 -D__sparc__ -D__sun__ -D__unix__ -D__svr4__ -D__SVR4 -D__sparc -D__sun -D__unix -Asystem(unix) -Asystem(svr4) -D__EXCEPTIONS -Wall -D__GCC_NEW_VARARGS__ -Acpu(sparc) -Amachine(sparc) return.c /var/tmp/ccSUSPpg.ii
GNU CPP version 2.95.3 20010112 (prerelease) (sparc)
#include "..." search starts here:
#include <...> search starts here:
/usr/local/lib/gcc-lib/sparc-sun-solaris2.7/2.95.3/../../../../include/g++-3
/usr/local/include
/usr/local/lib/gcc-lib/sparc-sun-solaris2.7/2.95.3/../../../../sparc-sun-solaris2.7/include
/usr/local/lib/gcc-lib/sparc-sun-solaris2.7/2.95.3/include
/usr/include
End of search list.
The following default directories have been omitted from the search path:
End of omitted list.
/usr/local/lib/gcc-lib/sparc-sun-solaris2.7/2.95.3/cc1plus /var/tmp/ccSUSPpg.ii -quiet -dumpbase return.cc -Wall -version -o /var/tmp/ccdexDth.s
GNU C++ version 2.95.3 20010112 (prerelease) (sparc-sun-solaris2.7) compiled by GNU C version 2.95.3 20010112 (prerelease).
/usr/ccs/bin/as -V -Qy -s -o return.o /var/tmp/ccdexDth.s
/usr/ccs/bin/as: WorkShop Compilers 5.0 98/12/21
(martin@polgar) ~/src $ uname -a
SunOS polgar.m17n.org 5.7 Generic_106541-08 sun4u sparc SUNW,Ultra-5_10
(martin@polgar) ~/src $ /project/xemacs/import/test-gcc/3.0/sparc-sun-solaris2.7/install/bin/gcc -c -Wall return.c
(martin@polgar) ~/src $
More information about the Gcc-bugs
mailing list