* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Type>: Don't
[official-gcc.git] / gcc / testsuite / gcc.c-torture / execute / pr60003.c
blob92bcc5659807b878974cae3bbd53fe7a8a1545ba
1 /* PR tree-optimization/60003 */
2 /* { dg-require-effective-target indirect_jumps } */
4 extern void abort (void);
6 unsigned long long jmp_buf[5];
8 __attribute__((noinline, noclone)) void
9 baz (void)
11 __builtin_longjmp (&jmp_buf, 1);
14 void
15 bar (void)
17 baz ();
20 __attribute__((noinline, noclone)) int
21 foo (int x)
23 int a = 0;
25 if (__builtin_setjmp (&jmp_buf) == 0)
27 while (1)
29 a = 1;
30 bar (); /* OK if baz () instead */
33 else
35 if (a == 0)
36 return 0;
37 else
38 return x;
42 int
43 main ()
45 if (foo (1) == 0)
46 abort ();
48 return 0;