diff --git a/src/lj_opt_fold.c b/src/lj_opt_fold.c index e3fe8bbf..0c5a4a6a 100644 --- a/src/lj_opt_fold.c +++ b/src/lj_opt_fold.c @@ -605,7 +605,7 @@ LJFOLDF(bufput_bufstr) return ref; } /* Replay puts to global temporary buffer. */ - if (IR(hdr)->op2 == IRBUFHDR_RESET) { + if (IR(hdr)->op2 == IRBUFHDR_RESET && !irt_isphi(fright->t)) { IRIns *ir = IR(fright->op1); /* For now only handle single string.reverse .lower .upper .rep. */ if (ir->o == IR_CALLL &&