From 4b4ddd5a28b74ce6add69667d542aaa3f3dfa38c Mon Sep 17 00:00:00 2001 From: Kouhei Sutou Date: Tue, 24 Feb 2015 00:21:49 +0900 Subject: Fix a bug that no expression case doesn't return valid value Here is a script that reproduces this problem: x = case when true; 1 end p x # => main # 1 is expected --- src/codegen.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/codegen.c b/src/codegen.c index 1fe26355f..c8f964f56 100644 --- a/src/codegen.c +++ b/src/codegen.c @@ -1458,7 +1458,7 @@ codegen(codegen_scope *s, node *tree, int val) int pos = cursp(); genop(s, MKOP_A(OP_LOADNIL, cursp())); if (pos3) dispatch_linked(s, pos3); - pop(); + if (head) pop(); genop(s, MKOP_AB(OP_MOVE, cursp(), pos)); push(); } -- cgit v1.2.3