diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2017-03-11 16:32:29 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2017-03-12 00:50:38 +0900 |
| commit | 26169f9e25788caf2781a92087f489e5e5fdc0c9 (patch) | |
| tree | 08fd028dc6857486eb470a057269d77b5fcd9356 /mrbgems/mruby-compiler/core/codegen.c | |
| parent | 000c68da97ec0bfbd93e3969a2eef21081569a72 (diff) | |
| download | mruby-26169f9e25788caf2781a92087f489e5e5fdc0c9.tar.gz mruby-26169f9e25788caf2781a92087f489e5e5fdc0c9.zip | |
Enhance OP_RESCUE to take B operand fas matching exception; ref #3487
Diffstat (limited to 'mrbgems/mruby-compiler/core/codegen.c')
| -rw-r--r-- | mrbgems/mruby-compiler/core/codegen.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/mrbgems/mruby-compiler/core/codegen.c b/mrbgems/mruby-compiler/core/codegen.c index 780a60ea2..31d66d22c 100644 --- a/mrbgems/mruby-compiler/core/codegen.c +++ b/mrbgems/mruby-compiler/core/codegen.c @@ -1294,7 +1294,7 @@ codegen(codegen_scope *s, node *tree, int val) node *n2 = tree->car; int exc = cursp(); - genop(s, MKOP_AB(OP_RESCUE, exc, 0)); + genop(s, MKOP_ABC(OP_RESCUE, exc, 0, 0)); push(); while (n2) { node *n3 = n2->car; @@ -1788,7 +1788,11 @@ codegen(codegen_scope *s, node *tree, int val) genop(s, MKOP_A(OP_POPERR, 1)); noexc = genop(s, MKOP_Bx(OP_JMP, 0)); dispatch(s, onerr); +<<<<<<< HEAD genop(s, MKOP_AB(OP_RESCUE, exc, 0)); +======= + genop(s, MKOP_ABC(OP_RESCUE, exc, 0, 0)); +>>>>>>> 55d89bd... Enhance OP_RESCUE to take B operand fas matching exception; ref #3487 genop(s, MKOP_A(OP_LOADF, exc)); dispatch(s, noexc); loop_pop(s, NOVAL); |
