[Bug target/28197] longjmp and alloca cause bus error at -O0
akr at m17n dot org
gcc-bugzilla@gcc.gnu.org
Thu Jun 29 02:32:00 GMT 2006
------- Comment #1 from akr at m17n dot org 2006-06-29 01:49 -------
I found a way to reproduce the bus error with -O2 as well as -O0.
% cat z.c
#include <setjmp.h>
jmp_buf env;
int i;
int main()
{
if (setjmp(env) == 0) {
char *p = __builtin_alloca(1024);
for (i = 0; i < 1024; i++) {
p[i] = 0;
}
longjmp(env, 1);
}
return 0;
}
Z:akr@ppc64.tky.aist.go.jp% ~/src/gcc/bin/gcc -O2 -v z.c
Using built-in specs.
Target: powerpc-apple-darwin8.6.0
Configured with: ../gcc-4.1.1/configure --prefix=/Users/akr/src/gcc
--enable-languages=c --with-as=/Users/akr/src/odcctools/bin/as
--with-ld=/Users/akr/src/odcctools/bin/ld
Thread model: posix
gcc version 4.1.1
/Users/akr/src/gcc/libexec/gcc/powerpc-apple-darwin8.6.0/4.1.1/cc1 -quiet -v
-D__DYNAMIC__ z.c -fPIC -quiet -dumpbase z.c -auxbase z -O2 -version -o
/var/tmp//ccCHTcUf.s
ignoring nonexistent directory
"/Users/akr/src/gcc/lib/gcc/powerpc-apple-darwin8.6.0/4.1.1/../../../../powerpc-apple-darwin8.6.0/include"
#include "..." search starts here:
#include <...> search starts here:
/usr/local/include
/Users/akr/src/gcc/include
/Users/akr/src/gcc/lib/gcc/powerpc-apple-darwin8.6.0/4.1.1/include
/usr/include
/System/Library/Frameworks
/Library/Frameworks
End of search list.
GNU C version 4.1.1 (powerpc-apple-darwin8.6.0)
compiled by GNU C version 4.1.1.
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: 060081fe4c432c1f8e1af4cf790a4da4
/Users/akr/src/odcctools/bin/as -arch ppc -o /var/tmp//ccsOCM5w.o
/var/tmp//ccCHTcUf.s
/Users/akr/src/gcc/libexec/gcc/powerpc-apple-darwin8.6.0/4.1.1/collect2
-dynamic -arch ppc -weak_reference_mismatches non-weak -o a.out -lcrt1.o
/Users/akr/src/gcc/lib/gcc/powerpc-apple-darwin8.6.0/4.1.1/crt2.o
-L/Users/akr/src/gcc/lib/gcc/powerpc-apple-darwin8.6.0/4.1.1
-L/Users/akr/src/gcc/lib/gcc/powerpc-apple-darwin8.6.0/4.1.1/../../..
/var/tmp//ccsOCM5w.o -lgcc -lSystemStubs -lSystem
% ./a.out
zsh: bus error ./a.out
% ~/src/gcc/bin/gcc -O0 z.c
% ./a.out
zsh: bus error ./a.out
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28197
More information about the Gcc-bugs
mailing list