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)19 void bar (void)
20 {
21   c++;
22   longjmp (jb, 1);
23 }
24 
main(void)25 int 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