]> granicus.if.org Git - php/commitdiff
Added optimization constraint (don't optimize result of NEW, because constructor...
authorDmitry Stogov <dmitry@zend.com>
Fri, 22 Jan 2016 10:30:34 +0000 (13:30 +0300)
committerDmitry Stogov <dmitry@zend.com>
Fri, 22 Jan 2016 10:30:34 +0000 (13:30 +0300)
ext/opcache/Optimizer/dfa_pass.c

index 02dfdd5b7ef62cbb92bec4feef41c71032f54f1d..7c71e535b4329e5d270f33721c14e360642e0b1c 100644 (file)
@@ -155,6 +155,8 @@ void zend_dfa_optimize_op_array(zend_op_array *op_array, zend_optimizer_ctx *ctx
                                                 && ssa->ops[op2].op2_use_chain < 0
                                                 && !ssa->vars[var1].phi_use_chain
                                                 && !ssa->vars[var1].sym_use_chain
+                                                /* see Zend/tests/generators/aborted_yield_during_new.phpt */
+                                                && op_array->opcodes[ssa->vars[var1].definition].opcode != ZEND_NEW
                                                ) {
                                                        int op1 = ssa->vars[var1].definition;
                                                        int var3 = i;