1 int tab[9];
execute(oip,ip)2 execute(oip, ip)
3      unsigned short *oip, *ip;
4 {
5 #ifndef NO_LABEL_VALUES
6   int x = 0;
7   int *xp = tab;
8 base:
9   x++;
10   if (x == 4)
11     {
12       *xp = 0;
13       return;
14     }
15   *xp++ = ip - oip;
16   goto *(&&base + *ip++);
17 #else
18   tab[0] = 0;
19   tab[1] = 1;
20   tab[2] = 2;
21   tab[3] = 0;
22 #endif
23 }
24 
main()25 main()
26 {
27   unsigned short ip[10];
28   int i;
29   for (i = 0; i < 10; i++)
30     ip[i] = 0;
31   execute(ip, ip);
32   if (tab[0] != 0 || tab[1] != 1 || tab[2] != 2 || tab[3] != 0)
33     abort();
34   exit(0);
35 }
36