lh | 9ed821d | 2023-04-07 01:36:19 -0700 | [diff] [blame] | 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 | ||||
8 | sub5 (jmp_buf buf) | ||||
9 | { | ||||
10 | longjmp (buf, 1); | ||||
11 | } | ||||
12 | |||||
13 | static void | ||||
14 | test (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 | ||||
33 | main (void) | ||||
34 | { | ||||
35 | int i; | ||||
36 | |||||
37 | for (i = 123; i < 345; ++i) | ||||
38 | test (i); | ||||
39 | |||||
40 | return 0; | ||||
41 | } |