modernc.org/ccgo/v3@v3.16.14/lib/testdata/gcc-9.1.0/gcc/testsuite/gcc.c-torture/execute/980526-1.c (about) 1 /* { dg-require-effective-target label_values } */ 2 3 int expect_do1 = 1, expect_do2 = 2; 4 5 static int doit(int x){ 6 __label__ lbl1; 7 __label__ lbl2; 8 static int jtab_init = 0; 9 static void *jtab[2]; 10 11 if(!jtab_init) { 12 jtab[0] = &&lbl1; 13 jtab[1] = &&lbl2; 14 jtab_init = 1; 15 } 16 goto *jtab[x]; 17 lbl1: 18 return 1; 19 lbl2: 20 return 2; 21 } 22 23 static void do1(void) { 24 if (doit(0) != expect_do1) 25 abort (); 26 } 27 28 static void do2(void){ 29 if (doit(1) != expect_do2) 30 abort (); 31 } 32 33 int main(void){ 34 exit(0); 35 }