1 /* setjmp vs alloca test case. Exercised bug on sparc. */ 2 3 #include <stdio.h> 4 #include <setjmp.h> 5 #include <alloca.h> 6 7 static void sub5(jmp_buf buf)8sub5 (jmp_buf buf) 9 { 10 longjmp (buf, 1); 11 } 12 13 static void test(int x)14test (int x) 15 { 16 jmp_buf buf; 17 char *volatile foo; 18 int arr[100]; 19 20 arr[77] = x; 21 if (setjmp (buf)) 22 { 23 printf ("made it ok; %d\n", arr[77]); 24 return; 25 } 26 27 foo = (char *) alloca (128); 28 (void) foo; 29 sub5 (buf); 30 } 31 32 int main(void)33main (void) 34 { 35 int i; 36 37 for (i = 123; i < 345; ++i) 38 test (i); 39 40 return 0; 41 } 42