Always emit OP_JMPLFE as goto can be used inside a loop and frame has to be left.
所有检测均成功
The build was successful.
所有检测均成功
The build was successful.
这个提交包含在:
父节点
03fc167be1
当前提交
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);
|
||||
|
正在加载...
x
在新工单中引用
屏蔽一个用户