| /* { dg-require-effective-target label_values } */ | |
| int tab[9]; | |
| execute(oip, ip) | |
| unsigned short *oip, *ip; | |
| { | |
| int x = 0; | |
| int *xp = tab; | |
| base: | |
| x++; | |
| if (x == 4) | |
| { | |
| *xp = 0; | |
| return; | |
| } | |
| *xp++ = ip - oip; | |
| goto *(&&base + *ip++); | |
| } | |
| 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); | |
| } |