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