1 /* { dg-do compile } */
2 /* { dg-options "-O1 -fdump-tree-dom2 -fdump-tree-optimized" } */
3
4 void dont_remove (void);
5
foo(int k)6 void foo(int k)
7 {
8 int i = 1;
9 void *label;
10
11 label = k ? &&x : &&y;
12
13 if (k == 1)
14 goto *label;
15
16 i = 0;
17 goto z;
18 z:
19 x:
20 if (i)
21 dont_remove ();
22 y: ;
23 }
24
25 /* { dg-final { scan-tree-dump-times "dont_remove \\(\\)" 1 "optimized"} } */
26
27 /* We should have folded away the goto &x */
28 /* { dg-final { scan-tree-dump-times "goto &x" 0 "optimized"} } */
29