Merge branch 'PHP-8.2' into PHP-8.3

* PHP-8.2:
  Fix assertion
This commit is contained in:
Dmitry Stogov 2023-12-25 13:22:39 +03:00
commit fd58f61a22
2 changed files with 13 additions and 1 deletions

View file

@ -878,12 +878,12 @@ static bool keeps_op1_alive(zend_op *opline) {
|| opline->opcode == ZEND_SWITCH_STRING || opline->opcode == ZEND_SWITCH_STRING
|| opline->opcode == ZEND_MATCH || opline->opcode == ZEND_MATCH
|| opline->opcode == ZEND_FETCH_LIST_R || opline->opcode == ZEND_FETCH_LIST_R
|| opline->opcode == ZEND_FETCH_LIST_W
|| opline->opcode == ZEND_COPY_TMP) { || opline->opcode == ZEND_COPY_TMP) {
return 1; return 1;
} }
ZEND_ASSERT(opline->opcode != ZEND_FE_FETCH_R ZEND_ASSERT(opline->opcode != ZEND_FE_FETCH_R
&& opline->opcode != ZEND_FE_FETCH_RW && opline->opcode != ZEND_FE_FETCH_RW
&& opline->opcode != ZEND_FETCH_LIST_W
&& opline->opcode != ZEND_VERIFY_RETURN_TYPE && opline->opcode != ZEND_VERIFY_RETURN_TYPE
&& opline->opcode != ZEND_BIND_LEXICAL && opline->opcode != ZEND_BIND_LEXICAL
&& opline->opcode != ZEND_ROPE_ADD); && opline->opcode != ZEND_ROPE_ADD);

View file

@ -0,0 +1,12 @@
--TEST--
DCE may remove FREE after FETCH_LIST_W
--FILE--
<?php
function () {
$a = $r[][] = $r = [] & $y;
+list(&$y) = $a;
}
?>
DONE
--EXPECT--
DONE