| /* setjmp vs alloca test case. Exercised bug on sparc. */ | |
| #include <stdio.h> | |
| #include <setjmp.h> | |
| #include <alloca.h> | |
| static void | |
| sub5 (jmp_buf buf) | |
| { | |
| longjmp (buf, 1); | |
| } | |
| static void | |
| test (int x) | |
| { | |
| jmp_buf buf; | |
| char *volatile foo; | |
| int arr[100]; | |
| arr[77] = x; | |
| if (setjmp (buf)) | |
| { | |
| printf ("made it ok; %d\n", arr[77]); | |
| return; | |
| } | |
| foo = (char *) alloca (128); | |
| (void) foo; | |
| sub5 (buf); | |
| } | |
| int | |
| main (void) | |
| { | |
| int i; | |
| for (i = 123; i < 345; ++i) | |
| test (i); | |
| return 0; | |
| } |