Skip to content

Commit c6b2b3b

Browse files
committed
Merge branch 'PHP-8.0'
* PHP-8.0: Add guard if lvalue of assignment may be a reference, but wasn't a reference during recording
2 parents d9e441b + 35e0506 commit c6b2b3b

File tree

1 file changed

+5
-0
lines changed

1 file changed

+5
-0
lines changed

ext/opcache/jit/zend_jit_trace.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1625,6 +1625,10 @@ static zend_ssa *zend_jit_trace_build_tssa(zend_jit_trace_rec *trace_buffer, uin
16251625
break;
16261626
}
16271627
ADD_OP2_TRACE_GUARD();
1628+
if (op1_type != IS_UNKNOWN
1629+
&& (tssa->var_info[tssa->ops[idx].op1_use].type & MAY_BE_REF)) {
1630+
ADD_OP1_TRACE_GUARD();
1631+
}
16281632
break;
16291633
case ZEND_CAST:
16301634
if (opline->extended_value != op1_type) {
@@ -4506,6 +4510,7 @@ static const void *zend_jit_trace(zend_jit_trace_rec *trace_buffer, uint32_t par
45064510
op2_info = OP2_INFO();
45074511
CHECK_OP2_TRACE_TYPE();
45084512
op1_info = OP1_INFO();
4513+
CHECK_OP1_TRACE_TYPE();
45094514
op1_def_info = OP1_DEF_INFO();
45104515
op1_addr = OP1_REG_ADDR();
45114516
op1_def_addr = OP1_DEF_REG_ADDR();

0 commit comments

Comments
 (0)