[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