]> granicus.if.org Git - php/commitdiff
Merge branch 'PHP-7.0'
authorNikita Popov <nikic@php.net>
Wed, 4 May 2016 22:01:56 +0000 (00:01 +0200)
committerNikita Popov <nikic@php.net>
Wed, 4 May 2016 22:01:56 +0000 (00:01 +0200)
Conflicts:
ext/opcache/Optimizer/block_pass.c

1  2 
ext/opcache/Optimizer/block_pass.c

index 8599d9ba190b57ab1cb20b367f9a30084b58b2a4,5e9b20d191e49f13c2cc4ed1abb5e6069b01d77f..6ad5110999b318d86cea974688fd34c31d6891ae
@@@ -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) &&