summaryrefslogtreecommitdiffhomepage
path: root/src/codegen.c
diff options
context:
space:
mode:
authorMasamitsu MURASE <[email protected]>2013-01-06 05:08:04 +0900
committerMasamitsu MURASE <[email protected]>2013-01-06 05:08:04 +0900
commit749404051cadf750a37919c24550a6f9da44c2e5 (patch)
treece2cae96cc47fda63a7e5875dd1542b521048f13 /src/codegen.c
parent7b37bb5992bf49ec8b3c59ebedefe6a7b55d4aff (diff)
downloadmruby-749404051cadf750a37919c24550a6f9da44c2e5.tar.gz
mruby-749404051cadf750a37919c24550a6f9da44c2e5.zip
Modify NODE_IF handling.
When "unless" is used without "else", tree->cdr->car of NODE_IF is NULL. In this case, pop() should not be called because codegen generates no code.
Diffstat (limited to 'src/codegen.c')
-rw-r--r--src/codegen.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/codegen.c b/src/codegen.c
index ffa13d647..0451bb996 100644
--- a/src/codegen.c
+++ b/src/codegen.c
@@ -1100,7 +1100,7 @@ codegen(codegen_scope *s, node *tree, int val)
codegen(s, tree->cdr->car, val);
if (e) {
- if (val) pop();
+ if (val && tree->cdr->car) pop();
pos2 = new_label(s);
genop(s, MKOP_sBx(OP_JMP, 0));
dispatch(s, pos1);