blob: 00c2fa57bec7588d8d06e1e39698a0e877aa0f12 [file] [log] [blame]
/* PR tree-optimization/29484 */
extern void abort (void);
void *__attribute__((noinline))
baz (void **lab)
{
asm volatile ("" : "+r" (lab));
return *lab;
}
static inline
int bar (void)
{
static void *b[] = { &&addr };
void *p = baz (b);
goto *p;
addr:
return 17;
}
int __attribute__((noinline))
f1 (void)
{
return bar ();
}
int __attribute__((noinline))
f2 (void)
{
return bar ();
}
int
main (void)
{
if (f1 () != 17 || f1 () != 17 || f2 () != 17 || f2 () != 17)
abort ();
return 0;
}