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