From: Dmitry Stogov Date: Fri, 27 Mar 2020 12:20:21 +0000 (+0300) Subject: BIND_GLOBAL and BIND_STATIC don't use value of the first operand X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=099ffc21698b32f86416c39118b95926f2f0a865;p=php BIND_GLOBAL and BIND_STATIC don't use value of the first operand --- diff --git a/ext/opcache/Optimizer/zend_ssa.h b/ext/opcache/Optimizer/zend_ssa.h index 02544506fe..5439e1e12c 100644 --- a/ext/opcache/Optimizer/zend_ssa.h +++ b/ext/opcache/Optimizer/zend_ssa.h @@ -213,7 +213,10 @@ static zend_always_inline zend_ssa_phi* zend_ssa_next_use_phi(const zend_ssa *ss static zend_always_inline zend_bool zend_ssa_is_no_val_use(const zend_op *opline, const zend_ssa_op *ssa_op, int var) { - if (opline->opcode == ZEND_ASSIGN || opline->opcode == ZEND_UNSET_CV) { + if (opline->opcode == ZEND_ASSIGN + || opline->opcode == ZEND_UNSET_CV + || opline->opcode == ZEND_BIND_GLOBAL + || opline->opcode == ZEND_BIND_STATIC) { return ssa_op->op1_use == var && ssa_op->op2_use != var; } if (opline->opcode == ZEND_FE_FETCH_R || opline->opcode == ZEND_FE_FETCH_RW) {