diff options
Diffstat (limited to 'src')
-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 cdb89baf..5fe4fec8 100644 --- a/src/lj_parse.c +++ b/src/lj_parse.c | |||
@@ -1525,7 +1525,9 @@ static void fs_fixup_ret(FuncState *fs) | |||
1525 | switch (bc_op(ins)) { | 1525 | switch (bc_op(ins)) { |
1526 | case BC_CALLMT: case BC_CALLT: | 1526 | case BC_CALLMT: case BC_CALLT: |
1527 | case BC_RETM: case BC_RET: case BC_RET0: case BC_RET1: | 1527 | case BC_RETM: case BC_RET: case BC_RET0: case BC_RET1: |
1528 | offset = bcemit_INS(fs, ins)-(pc+1)+BCBIAS_J; /* Copy return ins. */ | 1528 | offset = bcemit_INS(fs, ins); /* Copy original instruction. */ |
1529 | fs->bcbase[offset].line = fs->bcbase[pc].line; | ||
1530 | offset = offset-(pc+1)+BCBIAS_J; | ||
1529 | if (offset > BCMAX_D) | 1531 | if (offset > BCMAX_D) |
1530 | err_syntax(fs->ls, LJ_ERR_XFIXUP); | 1532 | err_syntax(fs->ls, LJ_ERR_XFIXUP); |
1531 | /* Replace with UCLO plus branch. */ | 1533 | /* Replace with UCLO plus branch. */ |