1 /* PR target/83368 */ 2 /* Testcase written by James Clarke <jrtc27@jrtc27.com> */ 3 4 /* { dg-do run { target *-*-solaris2.* *-*-linux* *-*-*bsd* } } */ 5 /* { dg-require-effective-target fpic } */ 6 /* { dg-options "-fPIC" } */ 7 8 #include <stdio.h> 9 #include <alloca.h> 10 #include <setjmp.h> 11 #include <string.h> 12 #include <stdlib.h> 13 14 jmp_buf jb; 15 16 int foo = 99; 17 int c = 0; 18 bar(void)19void bar (void) 20 { 21 c++; 22 longjmp (jb, 1); 23 } 24 main(void)25int main (void) 26 { 27 setjmp (jb); 28 29 char *p = alloca (256); 30 memset (p, 0, 256); 31 sprintf (p, "%d\n", foo); 32 33 if (c < 10) 34 bar(); 35 36 return 0; 37 } 38