aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Pall <mike>2022-01-23 19:13:53 +0100
committerMike Pall <mike>2022-01-23 19:13:53 +0100
commit5935564c3bd0d807327e94f916abf826f5c4bb70 (patch)
treee3afd3cacaef5d1b0996aaab44fee20355f30a8c
parentc929efc0395296a6a1c70c572b2df71bdfca966f (diff)
downloadluajit-5935564c3bd0d807327e94f916abf826f5c4bb70.tar.gz
luajit-5935564c3bd0d807327e94f916abf826f5c4bb70.tar.bz2
luajit-5935564c3bd0d807327e94f916abf826f5c4bb70.zip
Fix FOLD rule for BUFHDR append with intervening buffer use.
Reported by XmiliaH.
Diffstat (limited to '')
-rw-r--r--src/lj_opt_fold.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/lj_opt_fold.c b/src/lj_opt_fold.c
index 0c5a4a6a..8200b240 100644
--- a/src/lj_opt_fold.c
+++ b/src/lj_opt_fold.c
@@ -598,7 +598,8 @@ LJFOLDF(bufput_bufstr)
598 if (fleft->o == IR_BUFHDR && fleft->op2 == IRBUFHDR_RESET && 598 if (fleft->o == IR_BUFHDR && fleft->op2 == IRBUFHDR_RESET &&
599 fleft->prev == hdr && 599 fleft->prev == hdr &&
600 fleft->op1 == IR(hdr)->op1 && 600 fleft->op1 == IR(hdr)->op1 &&
601 !(irt_isphi(fright->t) && IR(hdr)->prev)) { 601 !(irt_isphi(fright->t) && IR(hdr)->prev) &&
602 (!LJ_HASBUFFER || J->chain[IR_CALLA] < hdr)) {
602 IRRef ref = fins->op1; 603 IRRef ref = fins->op1;
603 IR(ref)->op2 = IRBUFHDR_APPEND; /* Modify BUFHDR. */ 604 IR(ref)->op2 = IRBUFHDR_APPEND; /* Modify BUFHDR. */
604 IR(ref)->op1 = fright->op1; 605 IR(ref)->op1 = fright->op1;