Skip to content

Commit 79071fe

Browse files
committed
Added optimization constraint (don't optimize result of NEW, because constructor may throw exception)
1 parent 0df9b51 commit 79071fe

File tree

1 file changed

+2
-0
lines changed

1 file changed

+2
-0
lines changed

ext/opcache/Optimizer/dfa_pass.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,8 @@ void zend_dfa_optimize_op_array(zend_op_array *op_array, zend_optimizer_ctx *ctx
155155
&& ssa->ops[op2].op2_use_chain < 0
156156
&& !ssa->vars[var1].phi_use_chain
157157
&& !ssa->vars[var1].sym_use_chain
158+
/* see Zend/tests/generators/aborted_yield_during_new.phpt */
159+
&& op_array->opcodes[ssa->vars[var1].definition].opcode != ZEND_NEW
158160
) {
159161
int op1 = ssa->vars[var1].definition;
160162
int var3 = i;

0 commit comments

Comments
 (0)