]> granicus.if.org Git - php/commitdiff
Always create ARRAY_ELEM ssa var for ELEM_REF
authorNikita Popov <nikic@php.net>
Tue, 22 Dec 2015 22:08:26 +0000 (23:08 +0100)
committerNikita Popov <nikic@php.net>
Tue, 22 Dec 2015 22:08:26 +0000 (23:08 +0100)
ext/opcache/Optimizer/zend_ssa.c

index 1860c7bdd1c31c62d1c8b8c23cbfe88d58633fd9..46c3928106ac3329afe7cc83e7cfe5b98a823adc 100644 (file)
@@ -278,7 +278,9 @@ static int zend_ssa_rename(const zend_op_array *op_array, uint32_t build_flags,
                                case ZEND_ADD_ARRAY_ELEMENT:
                                        ssa_ops[k].result_use = var[EX_VAR_TO_NUM(opline->result.var)];
                                case ZEND_INIT_ARRAY:
-                                       if ((build_flags & ZEND_SSA_RC_INFERENCE) && opline->op1_type == IS_CV) {
+                                       if (((build_flags & ZEND_SSA_RC_INFERENCE)
+                                                               || (opline->extended_value & ZEND_ARRAY_ELEMENT_REF))
+                                                       && opline->op1_type == IS_CV) {
                                                ssa_ops[k].op1_def = ssa_vars_count;
                                                var[EX_VAR_TO_NUM(opline->op1.var)] = ssa_vars_count;
                                                ssa_vars_count++;