summaryrefslogtreecommitdiffhomepage
path: root/src/codegen.c
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2015-02-24 14:29:47 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2015-02-24 14:29:47 +0900
commit68f60714dc54f0b040243428822213f5f1c0fc2b (patch)
treefd3770e4e8dfb822043b428831d7bb2442972deb /src/codegen.c
parentd0bc006a739e5ee09ae00b09cda09902b1d71147 (diff)
parent584d6de3c29cb2cfef79ff17ac12f17ace000391 (diff)
downloadmruby-68f60714dc54f0b040243428822213f5f1c0fc2b.tar.gz
mruby-68f60714dc54f0b040243428822213f5f1c0fc2b.zip
Merge pull request #2729 from kou/fix-if-and-no-value-returned-case
Fix a bug that if and no return value case can't return true clause value
Diffstat (limited to 'src/codegen.c')
-rw-r--r--src/codegen.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/codegen.c b/src/codegen.c
index 46d457885..1fe26355f 100644
--- a/src/codegen.c
+++ b/src/codegen.c
@@ -1462,8 +1462,13 @@ codegen(codegen_scope *s, node *tree, int val)
genop(s, MKOP_AB(OP_MOVE, cursp(), pos));
push();
}
- else if (pos3) {
- dispatch_linked(s, pos3);
+ else {
+ if (pos3) {
+ dispatch_linked(s, pos3);
+ }
+ if (head) {
+ pop();
+ }
}
}
break;