1 /* PR tree-optimization/29484 */ 2 /* { dg-require-effective-target label_values } */ 3 4 extern void abort (void); 5 6 void *__attribute__((noinline)) baz(void ** lab)7baz (void **lab) 8 { 9 asm volatile ("" : "+r" (lab)); 10 return *lab; 11 } 12 13 static inline bar(void)14int bar (void) 15 { 16 static void *b[] = { &&addr }; 17 baz (b); 18 addr: 19 return 17; 20 } 21 22 int __attribute__((noinline)) f1(void)23f1 (void) 24 { 25 return bar (); 26 } 27 28 int __attribute__((noinline)) f2(void)29f2 (void) 30 { 31 return bar (); 32 } 33 34 int main(void)35main (void) 36 { 37 if (f1 () != 17 || f1 () != 17 || f2 () != 17 || f2 () != 17) 38 abort (); 39 return 0; 40 } 41