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