Skip to content

Commit 7fcbedd

Browse files
committed
Merge branch 'PHP-8.3'
* PHP-8.3: Fixed inorrect QM_ASSIGN elimination
2 parents 5d98069 + 916fa73 commit 7fcbedd

File tree

2 files changed

+16
-0
lines changed

2 files changed

+16
-0
lines changed

Zend/Optimizer/block_pass.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,7 @@ static void zend_optimize_block(zend_basic_block *block, zend_op_array *op_array
172172
&& opline->opcode != ZEND_SWITCH_LONG
173173
&& opline->opcode != ZEND_SWITCH_STRING
174174
&& opline->opcode != ZEND_MATCH
175+
&& opline->opcode != ZEND_MATCH_ERROR
175176
&& zend_optimizer_update_op1_const(op_array, opline, &c)) {
176177
VAR_SOURCE(op1) = NULL;
177178
if (opline->opcode != ZEND_JMP_NULL
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
--TEST--
2+
Block Pass 006: Inorrect QM_ASSIGN elimination
3+
--INI--
4+
opcache.enable=1
5+
opcache.enable_cli=1
6+
opcache.optimization_level=-1
7+
--FILE--
8+
<?php
9+
match(match(''){c=>''}){}
10+
?>
11+
--EXPECTF--
12+
Fatal error: Uncaught Error: Undefined constant "c" in %sblock_pass_006.php:2
13+
Stack trace:
14+
#0 {main}
15+
thrown in %sblock_pass_006.php on line 2

0 commit comments

Comments
 (0)