/* { dg-do compile { target ia32 } } */ /* { dg-options "-O2" } */ #define ADVANCE_AND_DISPATCH() goto *addresses[*pc++] void Interpret(const unsigned char *pc) { static const void *const addresses[] = { &&l0, &&l1, &&l2 }; l0: ADVANCE_AND_DISPATCH(); l1: ADVANCE_AND_DISPATCH(); l2: return; } /* { dg-final { scan-assembler-not "jmp\[ \t\]*.%eax" } } */