Always emit OP_JMPLFE as goto can be used inside a loop and frame has to be left.
Todas as verificações foram bem sucedidas
The build was successful.
Todas as verificações foram bem sucedidas
The build was successful.
Esse commit está contido em:
pai
03fc167be1
commit
e6b7f1be2c
@ -1523,6 +1523,8 @@ static sxi32 PH7_CompileGoto(ph7_gen_state *pGen)
|
||||
} else {
|
||||
sJump.pFunc = 0;
|
||||
}
|
||||
/* Make sure there will not stay any loop frame opened (i.e. goto inside a loop) */
|
||||
PH7_VmEmitInstr(pGen->pVm, sJump.nLine, PH7_OP_JMPLFE, 0, 0, 0, 0);
|
||||
/* Emit the unconditional jump */
|
||||
if(SXRET_OK == PH7_VmEmitInstr(pGen->pVm, sJump.nLine, PH7_OP_JMP, 0, 0, 0, &sJump.nInstrIdx)) {
|
||||
SySetPut(&pGen->aGoto, (const void *)&sJump);
|
||||
|
Carregando…
x
Referência em uma nova issue
Block a user