1 /* { dg-do compile } */
2 /* { dg-require-effective-target indirect_jumps } */
3 /* { dg-require-effective-target label_values } */
4
5 typedef __INTPTR_TYPE__ intptr_t;
6 intptr_t a, b, c, d;
7 int foo (void) { return 0; }
8 int baz (void);
9
10 void
11 bar (void)
12 {
13 intptr_t g = (intptr_t) &&h;
14 void *i = &&j, *k = &&l;
15 j:
16 if (baz ())
17 {
18 intptr_t **n = (intptr_t **) &a;
19 l:
20 b = 0;
21 for (; b >= 0;)
22 goto *k;
23 h:
24 **n = 0;
25 for (;;)
26 {
27 intptr_t *o = &c;
28 g = foo ();
29 *o = g;
30 if (c)
31 goto *(void*)d;
32 }
33 }
34 goto *i;
35 }