From: Nikita Popov Date: Wed, 4 May 2016 22:01:56 +0000 (+0200) Subject: Merge branch 'PHP-7.0' X-Git-Tag: php-7.1.0alpha1~200 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=35e7573a338c28d41c2c0228e58a4dff373f783b;p=php Merge branch 'PHP-7.0' Conflicts: ext/opcache/Optimizer/block_pass.c --- 35e7573a338c28d41c2c0228e58a4dff373f783b diff --cc ext/opcache/Optimizer/block_pass.c index 8599d9ba19,5e9b20d191..6ad5110999 --- a/ext/opcache/Optimizer/block_pass.c +++ b/ext/opcache/Optimizer/block_pass.c @@@ -1188,14 -1469,16 +1188,14 @@@ next_target (ZEND_OP1_TYPE(target) & (IS_TMP_VAR|IS_CV)) && same_type == ZEND_OP1_TYPE(target) && same_var == VAR_NUM_EX(target->op1) && - target_block->follow_to && - !target_block->protected) { + !(target_block->flags & ZEND_BB_PROTECTED)) { - /* JMPZ(X, L), L: X = JMPNZ_EX(X, L2) -> JMPZ(X, L+1) */ + /* JMPZ(X, L), L: T = JMPNZ_EX(X, L2) -> T = JMPZ_EX(X, L+1) */ last_op->opcode += 3; - last_op->result = target->result; + COPY_NODE(last_op->result, target->result); - del_source(block, block->op2_to); - block->op2_to = target_block->follow_to; - ADD_SOURCE(block, block->op2_to); - } else if (target_block->op2_to && - target->opcode == last_op->opcode && + DEL_SOURCE(block, block->successors[0]); + block->successors[0] = target_block->successors[1]; + ADD_SOURCE(block, block->successors[0]); + } else if (target->opcode == last_op->opcode && (ZEND_OP1_TYPE(target) & (IS_TMP_VAR|IS_CV)) && same_type == ZEND_OP1_TYPE(target) && same_var == VAR_NUM_EX(target->op1) &&