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