Incorrect code generation on Solaris
Jon Steinhart
jon@fourwinds.com
Tue May 15 09:36:00 GMT 2001
The following source appears to generate incorrect code as the resulting
executable crashes in the switch statement. I have done a bit of messing
around with it. Removing the while makes it work. Changing the number of
cases in the switch makes it work.
This is on a Sun Ultra-60 running Solaris 2.6
> SunOS darkstar.fourwinds.com 5.6 Generic_105181-19 sun4u sparc SUNW,Ultra-60
Reading specs from /usr/local/lib/gcc-lib/sparc-sun-solaris2.6/2.95.3/specs
gcc version 2.95.3 20010315 (release)
/usr/local/lib/gcc-lib/sparc-sun-solaris2.6/2.95.3/cpp0 -lang-c -v -D__GNUC__=2 -D__GNUC_MINOR__=95 -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__GCC_NEW_VARARGS__ -Acpu(sparc) -Amachine(sparc) b.c b.i
GNU CPP version 2.95.3 20010315 (release) (sparc)
#include "..." search starts here:
#include <...> search starts here:
/usr/local/include
/usr/local/lib/gcc-lib/sparc-sun-solaris2.6/2.95.3/../../../../sparc-sun-solaris2.6/include
/usr/local/lib/gcc-lib/sparc-sun-solaris2.6/2.95.3/include
/usr/include
End of search list.
The following default directories have been omitted from the search path:
/usr/local/lib/gcc-lib/sparc-sun-solaris2.6/2.95.3/../../../../include/g++-3
End of omitted list.
/usr/local/lib/gcc-lib/sparc-sun-solaris2.6/2.95.3/cc1 b.i -quiet -dumpbase b.c -version -o b.s
GNU C version 2.95.3 20010315 (release) (sparc-sun-solaris2.6) compiled by CC.
/usr/local/sparc-sun-solaris2.6/bin/as -V -Qy -s -o b.o b.s
GNU assembler version 2.9.1 (sparc-sun-solaris2.6), using BFD version 2.9.1
/usr/local/lib/gcc-lib/sparc-sun-solaris2.6/2.95.3/collect2 -V -Y P,/usr/ccs/lib:/usr/lib -Qy /usr/local/lib/gcc-lib/sparc-sun-solaris2.6/2.95.3/crt1.o /usr/local/lib/gcc-lib/sparc-sun-solaris2.6/2.95.3/crti.o /usr/ccs/lib/values-Xa.o /usr/local/lib/gcc-lib/sparc-sun-solaris2.6/2.95.3/crtbegin.o -L/usr/local/lib/gcc-lib/sparc-sun-solaris2.6/2.95.3 -L/usr/local/sparc-sun-solaris2.6/lib -L/usr/ccs/bin -L/usr/ccs/lib -L/usr/local/lib b.o -lgcc -lc -lgcc /usr/local/lib/gcc-lib/sparc-sun-solaris2.6/2.95.3/crtend.o /usr/local/lib/gcc-lib/sparc-sun-solaris2.6/2.95.3/crtn.o
GNU ld version 2.9.1 (with BFD 2.9.1)
Supported emulations:
elf32_sparc
#text/x-c-file; name="b.c"; x-unix-mode=0600 [ c program text ] /export/home/jon/cb/protocol/poem/src/manufacturing/board/b.c
#text/x-c-file; name="b.i"; x-unix-mode=0600 [ c program text ] /export/home/jon/cb/protocol/poem/src/manufacturing/board/b.i
#text/x-c-file; name="b.o"; x-unix-mode=0600 [ ELF 32-bit MSB relocatable SPARC Version 1 ] /export/home/jon/cb/protocol/poem/src/manufacturing/board/b.o
#text/x-c-file; name="b.s"; x-unix-mode=0600 [ assembler program text ] /export/home/jon/cb/protocol/poem/src/manufacturing/board/b.s
#text/x-c-file; name="a.out"; x-unix-mode=0600 [ ELF 32-bit MSB executable SPARC Version 1, dynamically linked, not stripped ] /export/home/jon/cb/protocol/poem/src/manufacturing/board/a.out
More information about the Gcc-bugs
mailing list