From 6d8d08f13bca7ac3c8c337cd7c98ffd17439fc3f Mon Sep 17 00:00:00 2001 From: Dmitry Stogov Date: Thu, 9 Jul 2020 15:36:25 +0300 Subject: [PATCH] Fixed tracing JIT support for extract() --- ext/opcache/jit/zend_jit_trace.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/ext/opcache/jit/zend_jit_trace.c b/ext/opcache/jit/zend_jit_trace.c index 7a0e6fbcc2a..764e7768a39 100644 --- a/ext/opcache/jit/zend_jit_trace.c +++ b/ext/opcache/jit/zend_jit_trace.c @@ -1261,7 +1261,8 @@ static zend_ssa *zend_jit_trace_build_tssa(zend_jit_trace_rec *trace_buffer, uin } else { ssa_var_info[i].type = MAY_BE_RC1 | MAY_BE_RCN | MAY_BE_REF | MAY_BE_ANY | MAY_BE_ARRAY_KEY_ANY | MAY_BE_ARRAY_OF_ANY | MAY_BE_ARRAY_OF_REF; } - } else if (op_array->function_name) { + } else if (op_array->function_name + && !zend_jit_var_may_be_modified_indirectly(op_array, ssa, i)) { ssa_vars[i].no_val = ssa->vars ? ssa->vars[i].no_val : 0; ssa_var_info[i].type = MAY_BE_UNDEF; } else { @@ -1722,7 +1723,8 @@ propagate_arg: } else { ssa_var_info[v].type = MAY_BE_RC1 | MAY_BE_RCN | MAY_BE_REF | MAY_BE_ANY | MAY_BE_ARRAY_KEY_ANY | MAY_BE_ARRAY_OF_ANY | MAY_BE_ARRAY_OF_REF; } - } else if (op_array->function_name) { + } else if (op_array->function_name + && !zend_jit_var_may_be_modified_indirectly(op_array, ssa, i)) { ssa_vars[v].no_val = ssa->vars ? ssa->vars[i].no_val : 0; ssa_var_info[v].type = MAY_BE_UNDEF; } else {