1int expect_do1 = 1, expect_do2 = 2;
2
3static int doit(int x){
4  __label__ lbl1;
5  __label__ lbl2;
6  static int jtab_init = 0;
7  static void *jtab[2];
8
9  if(!jtab_init) {
10    jtab[0] = &&lbl1;
11    jtab[1] = &&lbl2;
12    jtab_init = 1;
13  }
14  goto *jtab[x];
15lbl1:
16  return 1;
17lbl2:
18  return 2;
19}
20
21static void do1(void) {
22  if (doit(0) != expect_do1)
23    abort ();
24}
25
26static void do2(void){
27  if (doit(1) != expect_do2)
28    abort ();
29}
30
31int main(void){
32#ifndef NO_LABEL_VALUES
33  do1();
34  do2();
35#endif
36  exit(0);
37}
38