1 /* { dg-require-effective-target label_values } */ 2 3 int expect_do1 = 1, expect_do2 = 2; 4 doit(int x)5static 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 do1(void)23static void do1(void) { 24 if (doit(0) != expect_do1) 25 abort (); 26 } 27 do2(void)28static void do2(void){ 29 if (doit(1) != expect_do2) 30 abort (); 31 } 32 main(void)33int main(void){ 34 exit(0); 35 } 36