1 /* PR tree-optimization/49161 */
2 
3 extern void abort (void);
4 
5 int c;
6 
7 __attribute__((noinline, noclone)) void
bar(int x)8 bar (int x)
9 {
10   if (x != c++)
11     abort ();
12 }
13 
14 __attribute__((noinline, noclone)) void
foo(int x)15 foo (int x)
16 {
17   switch (x)
18     {
19     case 3: goto l1;
20     case 4: goto l2;
21     case 6: goto l3;
22     default: return;
23     }
24 l1:
25   goto l4;
26 l2:
27   goto l4;
28 l3:
29   bar (-1);
30 l4:
31   bar (0);
32   if (x != 4)
33     bar (1);
34   if (x != 3)
35     bar (-1);
36   bar (2);
37 }
38 
39 int
main()40 main ()
41 {
42   foo (3);
43   if (c != 3)
44     abort ();
45   return 0;
46 }
47