Skip to content

Commit 282ae89

Browse files
committed
Merge branch 'PHP-7.2'
* PHP-7.2: Fixed live_range removing (bug can be triggred by JIT)
2 parents 9ae9533 + aecf996 commit 282ae89

File tree

2 files changed

+3
-3
lines changed

2 files changed

+3
-3
lines changed

Zend/zend_compile.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7844,7 +7844,7 @@ static void zend_compile_encaps_list(znode *result, zend_ast *ast) /* {{{ */
78447844
GET_NODE(result, opline->result);
78457845
} else {
78467846
uint32_t var;
7847-
uint32_t range = zend_start_live_range(CG(active_op_array), rope_init_lineno);
7847+
uint32_t range = zend_start_live_range(CG(active_op_array), rope_init_lineno + 1);
78487848

78497849
init_opline->extended_value = j;
78507850
opline->opcode = ZEND_ROPE_END;

ext/opcache/Optimizer/zend_optimizer.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -558,8 +558,8 @@ void zend_optimizer_remove_live_range_ex(zend_op_array *op_array, uint32_t var,
558558
uint32_t i = 0;
559559

560560
while (i < op_array->last_live_range) {
561-
if (op_array->live_range[i].var == var
562-
&& op_array->live_range[i].start == start) {
561+
if ((op_array->live_range[i].var & ~ZEND_LIVE_MASK) == var
562+
&& op_array->live_range[i].start == start) {
563563
op_array->last_live_range--;
564564
if (i < op_array->last_live_range) {
565565
memmove(&op_array->live_range[i], &op_array->live_range[i+1], (op_array->last_live_range - i) * sizeof(zend_live_range));

0 commit comments

Comments
 (0)