diff options
author | Mike Pall <mike> | 2022-01-13 18:33:04 +0100 |
---|---|---|
committer | Mike Pall <mike> | 2022-01-13 18:33:04 +0100 |
commit | bc1bdbf620f58f0978385828bc51272903601e17 (patch) | |
tree | 898f01841d3cc252298760ecaf30abd55c5a0a7f /src | |
parent | be251d9149b386ca0d4b51106be14366c5dbdf14 (diff) | |
download | luajit-bc1bdbf620f58f0978385828bc51272903601e17.tar.gz luajit-bc1bdbf620f58f0978385828bc51272903601e17.tar.bz2 luajit-bc1bdbf620f58f0978385828bc51272903601e17.zip |
Fix FOLD rule for BUFHDR append.
Reported by XmiliaH.
Diffstat (limited to 'src')
-rw-r--r-- | src/lj_opt_fold.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/lj_opt_fold.c b/src/lj_opt_fold.c index 83972db9..27305fe6 100644 --- a/src/lj_opt_fold.c +++ b/src/lj_opt_fold.c | |||
@@ -597,7 +597,8 @@ LJFOLDF(bufput_bufstr) | |||
597 | /* New buffer, no other buffer op inbetween and same buffer? */ | 597 | /* New buffer, no other buffer op inbetween and same buffer? */ |
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 | IRRef ref = fins->op1; | 602 | IRRef ref = fins->op1; |
602 | IR(ref)->op2 = IRBUFHDR_APPEND; /* Modify BUFHDR. */ | 603 | IR(ref)->op2 = IRBUFHDR_APPEND; /* Modify BUFHDR. */ |
603 | IR(ref)->op1 = fright->op1; | 604 | IR(ref)->op1 = fright->op1; |