1int tab[9]; 2execute(oip, ip) 3 unsigned short *oip, *ip; 4{ 5#ifndef NO_LABEL_VALUES 6 int x = 0; 7 int *xp = tab; 8base: 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 25main() 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