mirror of
https://github.com/php/php-src.git
synced 2025-08-16 14:08:47 +02:00
Remove special UNREACHABLE_FREE handling in block pass
This results in an assertion failure when running under -e, because there is an additional EXT_STMT + NOP before the FREE. I don't think there's a strong reason to handle UNREACHABLE_FREE specially here (it's only important that we *do* handle it), so I'm dropping the code rather than adjusting it to scan over certain opcodes.
This commit is contained in:
parent
9f263411eb
commit
b97a080034
1 changed files with 0 additions and 8 deletions
|
@ -967,14 +967,6 @@ static void assemble_code_blocks(zend_cfg *cfg, zend_op_array *op_array, zend_op
|
|||
continue;
|
||||
}
|
||||
if (b->flags & (ZEND_BB_REACHABLE|ZEND_BB_UNREACHABLE_FREE)) {
|
||||
if (b->flags & ZEND_BB_UNREACHABLE_FREE) {
|
||||
/* Only keep the FREE for the loop var */
|
||||
ZEND_ASSERT(op_array->opcodes[b->start].opcode == ZEND_FREE
|
||||
|| op_array->opcodes[b->start].opcode == ZEND_FE_FREE);
|
||||
len += b->len = 1;
|
||||
continue;
|
||||
}
|
||||
|
||||
opline = op_array->opcodes + b->start + b->len - 1;
|
||||
if (opline->opcode == ZEND_JMP) {
|
||||
zend_basic_block *next = b + 1;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue