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 (format: "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 (x: i); |
39 | |
40 | return 0; |
41 | } |
42 |