diff options
| author | Takashi Sogabe <[email protected]> | 2012-10-17 12:55:50 +0900 |
|---|---|---|
| committer | Takashi Sogabe <[email protected]> | 2012-10-17 12:55:50 +0900 |
| commit | 8d6f1b04a1f326e3668fd1b2aa0978c2bb38b3ff (patch) | |
| tree | 56541b56d01be40a3746a0e2cf4a492b5f47afa3 /src/codegen.c | |
| parent | 265fa03d2c6863bf3425bfe00738ad15d62ba587 (diff) | |
| download | mruby-8d6f1b04a1f326e3668fd1b2aa0978c2bb38b3ff.tar.gz mruby-8d6f1b04a1f326e3668fd1b2aa0978c2bb38b3ff.zip | |
Fix disappearance of a local variable when return statement is called
Commit of #18dd60c causes disappearance of a local variable
if return statement is called without arguments.
This patch fixes incorrect value of stack pointer.
test program:
def test_return_cond
return if nil
obj = 123
p obj
p obj.class
end
test_return_cond
output(commit #18dd60c):
main
Object
output(includes this patch):
123
Fixnum
Diffstat (limited to 'src/codegen.c')
| -rw-r--r-- | src/codegen.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/codegen.c b/src/codegen.c index f195c378a..27f217ebe 100644 --- a/src/codegen.c +++ b/src/codegen.c @@ -1490,6 +1490,7 @@ codegen(codegen_scope *s, node *tree, int val) else { genop_peep(s, MKOP_AB(OP_RETURN, cursp(), OP_R_NORMAL), NOVAL); } + push(); break; case NODE_YIELD: |
