/* { dg-do compile } */ | |
/* { dg-require-effective-target indirect_jumps } */ | |
/* { dg-require-effective-target label_values } */ | |
typedef __INTPTR_TYPE__ intptr_t; | |
intptr_t a, b, c, d; | |
int foo (void) { return 0; } | |
int baz (void); | |
void | |
bar (void) | |
{ | |
intptr_t g = (intptr_t) &&h; | |
void *i = &&j, *k = &&l; | |
j: | |
if (baz ()) | |
{ | |
intptr_t **n = (intptr_t **) &a; | |
l: | |
b = 0; | |
for (; b >= 0;) | |
goto *k; | |
h: | |
**n = 0; | |
for (;;) | |
{ | |
intptr_t *o = &c; | |
g = foo (); | |
*o = g; | |
if (c) | |
goto *(void*)d; | |
} | |
} | |
goto *i; | |
} |