PR middle-end/27945
[official-gcc.git] / gcc / testsuite / gcc.dg / non-local-goto-2.c
blob24ed650a9e93b1a0c4bfa188446573e4bb26ca92
1 /* { dg-do run } */
2 /* { dg-options "-O2" } */
4 extern void abort (void);
6 int global;
8 static foo(void) __attribute__((noinline));
10 static foo(void)
12 global = 1;
15 static bar(void)
17 foo ();
18 global = 0;
21 int execute(int cmd)
23 __label__ start;
25 void raise(void)
27 goto start;
30 int last;
32 bar ();
34 last = 0;
36 start:
38 if (last == 0)
39 while (1)
41 last = 1;
42 raise ();
45 if (last == 0)
46 return 0;
47 else
48 return cmd;
51 int main(void)
53 if (execute (1) == 0)
54 abort ();
56 return 0;