1
0
mirror of https://github.com/php/php-src.git synced 2026-04-14 19:41:05 +02:00
If the last instruction in a block is a NOP, then `new_opline`
here won't be a copy of `opline`, it will be a copy of the last
non-NOP opline. Avoid performing a spurious update by explicitly
checking for NOP.
This commit is contained in:
Nikita Popov
2017-04-14 21:58:35 +02:00
parent 5d095f80c9
commit 3ffe2cd251
2 changed files with 8 additions and 1 deletions

3
NEWS
View File

@@ -37,6 +37,9 @@ PHP NEWS
microseconds/fractions). (Andrew Nester)
. Fixed bug #74433 (wrong reflection for Normalizer methods). (villfa)
- Opcache:
. Fixed bug #74431 (foreach infinite loop). (Nikita)
- OpenSSL:
. Fixed bug #74341 (openssl_x509_parse fails to parse ASN.1 UTCTime without
seconds). (Moritz Fain)

View File

@@ -162,8 +162,12 @@ static void zend_ssa_remove_nops(zend_op_array *op_array, zend_ssa *ssa)
zend_op *opline;
zend_op *new_opline;
opline = op_array->opcodes + end - 1;
b->len = target - b->start;
opline = op_array->opcodes + end - 1;
if (opline->opcode == ZEND_NOP) {
continue;
}
new_opline = op_array->opcodes + target - 1;
switch (new_opline->opcode) {
case ZEND_JMP: