]> granicus.if.org Git - php/commitdiff
Merge branch 'PHP-7.3' into PHP-7.4
authorNikita Popov <nikita.ppv@gmail.com>
Tue, 21 May 2019 15:17:30 +0000 (17:17 +0200)
committerNikita Popov <nikita.ppv@gmail.com>
Tue, 21 May 2019 15:17:45 +0000 (17:17 +0200)
1  2 
ext/opcache/Optimizer/sccp.c

index b81c155bb678dff8898e9b160a0746dae7f8a781,1791f6a941dc3947179df4e6d60610b4836dce6f..c9b6f4f3f4a17329071ab3ce789cb32c1f662295
@@@ -1400,31 -1360,6 +1400,31 @@@ static void sccp_visit_instr(scdf_ctx *
                        }
                        return;
                }
-                       if (Z_TYPE(ctx->values[ssa_op->result_def]) == IS_NULL) {
 +              case ZEND_ADD_ARRAY_UNPACK: {
 +                      zval *result = &ctx->values[ssa_op->result_use];
 +                      if (IS_BOT(result) || IS_BOT(op1)) {
 +                              SET_RESULT_BOT(result);
 +                              return;
 +                      }
 +                      SKIP_IF_TOP(result);
 +                      SKIP_IF_TOP(op1);
 +
 +                      /* See comment for ADD_ARRAY_ELEMENT. */
++                      if (Z_TYPE_P(result) == IS_NULL) {
 +                              SET_RESULT_BOT(result);
 +                              return;
 +                      }
 +                      ZVAL_COPY_VALUE(&zv, result);
 +                      ZVAL_NULL(result);
 +
 +                      if (ct_eval_add_array_unpack(&zv, op1) == SUCCESS) {
 +                              SET_RESULT(result, &zv);
 +                      } else {
 +                              SET_RESULT_BOT(result);
 +                      }
 +                      zval_ptr_dtor_nogc(&zv);
 +                      return;
 +              }
                case ZEND_NEW:
                        if (ssa_op->result_def >= 0
                                        && ctx->scdf.ssa->vars[ssa_op->result_def].escape_state == ESCAPE_STATE_NO_ESCAPE) {