blob: 225aeb718902e373fb245b8a04de3070ae0d11e9 [file] [log] [blame]
/* { dg-do compile } */
/* { dg-require-effective-target label_values } */
typedef int Embryo_Cell;
int
embryo_program_run(Embryo_Cell *cip)
{
unsigned char op;
Embryo_Cell offs;
static const void *switchtable[256] = {
&&SWITCHTABLE_EMBRYO_OP_NONE, &&SWITCHTABLE_EMBRYO_OP_LOAD_PRI
};
for (;;)
{
op = *cip++;
while (1) {
goto *switchtable[op];
SWITCHTABLE_EMBRYO_OP_LOAD_PRI:
offs = *(Embryo_Cell *)cip++;
SWITCHTABLE_EMBRYO_OP_NONE:
break;
};
}
return offs;
}