From 3360d05f3047c348524b4a04a459001a18ccebd6 Mon Sep 17 00:00:00 2001 From: Dmitry Stogov Date: Fri, 29 Nov 2019 17:43:36 +0300 Subject: [PATCH] Don't keep QM_ASSIGN with IS_UNUSED result --- ext/opcache/Optimizer/block_pass.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/ext/opcache/Optimizer/block_pass.c b/ext/opcache/Optimizer/block_pass.c index b4cd2407ba..b6af541eac 100644 --- a/ext/opcache/Optimizer/block_pass.c +++ b/ext/opcache/Optimizer/block_pass.c @@ -270,6 +270,13 @@ static void zend_optimize_block(zend_basic_block *block, zend_op_array *op_array src->result_type = IS_UNUSED; MAKE_NOP(opline); ++(*opt_count); + if (src->opcode == ZEND_QM_ASSIGN) { + if (src->op1_type & (IS_VAR|IS_TMP_VAR)) { + src->opcode = ZEND_FREE; + } else { + MAKE_NOP(src); + } + } } } break; -- 2.50.1