mirror of
https://github.com/php/php-src.git
synced 2025-08-15 13:38:49 +02:00
Merge branch 'PHP-8.2' into PHP-8.3
* PHP-8.2: Fix assertion
This commit is contained in:
commit
fd58f61a22
2 changed files with 13 additions and 1 deletions
|
@ -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);
|
||||||
|
|
12
ext/opcache/tests/opt/dce_014.phpt
Normal file
12
ext/opcache/tests/opt/dce_014.phpt
Normal 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
|
Loading…
Add table
Add a link
Reference in a new issue