mirror of
https://github.com/php/php-src.git
synced 2024-09-24 11:27:28 +00:00
Don't insert duplicate predecessors
Otherwise we'll get corrupt phis
This commit is contained in:
parent
cf6aa46dbd
commit
949aaea66e
@ -535,7 +535,7 @@ int zend_cfg_build_predecessors(zend_arena **arena, zend_cfg *cfg) /* {{{ */
|
||||
if (b->successors[0] >= 0) {
|
||||
edges++;
|
||||
blocks[b->successors[0]].predecessors_count++;
|
||||
if (b->successors[1] >= 0) {
|
||||
if (b->successors[1] >= 0 && b->successors[1] != b->successors[0]) {
|
||||
edges++;
|
||||
blocks[b->successors[1]].predecessors_count++;
|
||||
}
|
||||
@ -564,7 +564,8 @@ int zend_cfg_build_predecessors(zend_arena **arena, zend_cfg *cfg) /* {{{ */
|
||||
zend_basic_block *b = blocks + blocks[j].successors[0];
|
||||
predecessors[b->predecessor_offset + b->predecessors_count] = j;
|
||||
b->predecessors_count++;
|
||||
if (blocks[j].successors[1] >= 0) {
|
||||
if (blocks[j].successors[1] >= 0
|
||||
&& blocks[j].successors[1] != blocks[j].successors[0]) {
|
||||
zend_basic_block *b = blocks + blocks[j].successors[1];
|
||||
predecessors[b->predecessor_offset + b->predecessors_count] = j;
|
||||
b->predecessors_count++;
|
||||
|
Loading…
Reference in New Issue
Block a user