codegen.c: need to push the value when the loop was eliminated.

This commit is contained in:
Yukihiro "Matz" Matsumoto
2021-08-07 12:11:38 +09:00
parent cd02cef465
commit 06f49b3f84
+8 -2
View File
@@ -2165,14 +2165,20 @@ codegen(codegen_scope *s, node *tree, int val)
case NODE_INT:
case NODE_STR:
if (nt == NODE_UNTIL) {
if (val) genop_1(s, OP_LOADNIL, cursp());
if (val) {
genop_1(s, OP_LOADNIL, cursp());
push();
}
goto exit;
}
break;
case NODE_FALSE:
case NODE_NIL:
if (nt == NODE_WHILE) {
if (val) genop_1(s, OP_LOADNIL, cursp());
if (val) {
genop_1(s, OP_LOADNIL, cursp());
push();
}
goto exit;
}
break;