]> granicus.if.org Git - php/commitdiff
BIND_GLOBAL and BIND_STATIC don't use value of the first operand
authorDmitry Stogov <dmitry@zend.com>
Fri, 27 Mar 2020 12:20:21 +0000 (15:20 +0300)
committerDmitry Stogov <dmitry@zend.com>
Fri, 27 Mar 2020 12:20:21 +0000 (15:20 +0300)
ext/opcache/Optimizer/zend_ssa.h

index 02544506fea5179d4dd0993274a911b0a5d96561..5439e1e12ccc70c67cad68e3568fe14edc72d9b4 100644 (file)
@@ -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) {