Buggy code generated by gcc

Yves Colombani yc@dash.co.uk
Tue Feb 15 09:28:00 GMT 2000


Hello,

The following code terminates by a Bus error (on sparc) when compiled
without optimisation (the '-O' option solves the problem and CC works fine in
all cases).
<<
extern void *malloc(unsigned);
int main()
{
 int *a;
 double *aa;

 a=malloc(sizeof(int)+sizeof(double));
 *a=1;
 aa=(double *)(a+1);
 *aa=1.2;       /* Here: Bus error */              
 return 0;
}
>>

I have tried gcc 2.8.1 and gcc 2.95.2 with the same results.
The test has been performed (compilation+run of the program) on an ultra 10
and on a sparcstation 5 both running Solaris 2.6.

Yves.

ariadne% gcc -v --save-temps aa.c
Reading specs from /usr/local/lib/gcc-lib/sparc-sun-solaris2.6/2.95.2/specs
gcc version 2.95.2 19991024 (release)
 /usr/local/lib/gcc-lib/sparc-sun-solaris2.6/2.95.2/cpp -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) aa.c aa.i
GNU CPP version 2.95.2 19991024 (release) (sparc)
#include "..." search starts here:
#include <...> search starts here:
 /usr/local/include

/usr/local/lib/gcc-lib/sparc-sun-solaris2.6/2.95.2/../../../../sparc-sun-solaris2.6/include
 /usr/local/lib/gcc-lib/sparc-sun-solaris2.6/2.95.2/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.2/../../../../include/g++-3
End of omitted list.
 /usr/local/lib/gcc-lib/sparc-sun-solaris2.6/2.95.2/cc1 aa.i -quiet -dumpbase
aa.c -version -o aa.s
GNU C version 2.95.2 19991024 (release) (sparc-sun-solaris2.6) compiled by GNU
C version 2.95.2 19991024 (release).
aa.c:1: warning: parameter names (without types) in function declaration
 /usr/ccs/bin/as -V -Qy -s -o aa.o aa.s
/usr/ccs/bin/as: WorkShop Compilers 4.X dev 18 Sep 1996
 /usr/local/lib/gcc-lib/sparc-sun-solaris2.6/2.95.2/collect2 -V -Y
P,/usr/ccs/lib:/usr/lib -Qy
/usr/local/lib/gcc-lib/sparc-sun-solaris2.6/2.95.2/crt1.o
/usr/local/lib/gcc-lib/sparc-sun-solaris2.6/2.95.2/crti.o
/usr/ccs/lib/values-Xa.o
/usr/local/lib/gcc-lib/sparc-sun-solaris2.6/2.95.2/crtbegin.o
-L/usr/local/lib/gcc-lib/sparc-sun-solaris2.6/2.95.2
-L/usr/local/sparc-sun-solaris2.6/lib -L/usr/ccs/bin -L/usr/ccs/lib
-L/usr/local/lib aa.o -lgcc -lc -lgcc
/usr/local/lib/gcc-lib/sparc-sun-solaris2.6/2.95.2/crtend.o
/usr/local/lib/gcc-lib/sparc-sun-solaris2.6/2.95.2/crtn.o
ld: Software Generation Utilities - Solaris/ELF (3.0)




More information about the Gcc-bugs mailing list