Skip to content

Commit c088a93

Browse files
committed
Merge branch 'PHP-7.4'
* PHP-7.4: Fix pi node removal when removing predecessor
2 parents 682823b + 3761293 commit c088a93

File tree

2 files changed

+15
-1
lines changed

2 files changed

+15
-1
lines changed
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
--TEST--
2+
Regression test for incorrect update of pi node users when removing a predecessor block
3+
--FILE--
4+
<?php
5+
6+
function test() {
7+
for (; $n--; )
8+
C;
9+
}
10+
test();
11+
12+
?>
13+
--EXPECTF--
14+
Warning: Undefined variable $n in %s on line %d

ext/opcache/Optimizer/zend_ssa.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1409,7 +1409,7 @@ void zend_ssa_remove_predecessor(zend_ssa *ssa, int from, int to) /* {{{ */
14091409
for (phi = next_ssa_block->phis; phi; phi = phi->next) {
14101410
if (phi->pi >= 0) {
14111411
if (phi->pi == from) {
1412-
zend_ssa_remove_uses_of_var(ssa, phi->ssa_var);
1412+
zend_ssa_rename_var_uses(ssa, phi->ssa_var, phi->sources[0], /* update_types */ 0);
14131413
zend_ssa_remove_phi(ssa, phi);
14141414
}
14151415
} else {

0 commit comments

Comments
 (0)