diff options
-rw-r--r-- | src/lj_parse.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/lj_parse.c b/src/lj_parse.c index 7ff7d728..882399c7 100644 --- a/src/lj_parse.c +++ b/src/lj_parse.c | |||
@@ -1555,7 +1555,9 @@ static void fs_fixup_ret(FuncState *fs) | |||
1555 | switch (bc_op(ins)) { | 1555 | switch (bc_op(ins)) { |
1556 | case BC_CALLMT: case BC_CALLT: | 1556 | case BC_CALLMT: case BC_CALLT: |
1557 | case BC_RETM: case BC_RET: case BC_RET0: case BC_RET1: | 1557 | case BC_RETM: case BC_RET: case BC_RET0: case BC_RET1: |
1558 | offset = bcemit_INS(fs, ins)-(pc+1)+BCBIAS_J; /* Copy return ins. */ | 1558 | offset = bcemit_INS(fs, ins); /* Copy original instruction. */ |
1559 | fs->bcbase[offset].line = fs->bcbase[pc].line; | ||
1560 | offset = offset-(pc+1)+BCBIAS_J; | ||
1559 | if (offset > BCMAX_D) | 1561 | if (offset > BCMAX_D) |
1560 | err_syntax(fs->ls, LJ_ERR_XFIXUP); | 1562 | err_syntax(fs->ls, LJ_ERR_XFIXUP); |
1561 | /* Replace with UCLO plus branch. */ | 1563 | /* Replace with UCLO plus branch. */ |