diff options
author | Dmitry Stogov <dmitry@zend.com> | 2016-11-17 10:42:31 +0300 |
---|---|---|
committer | Dmitry Stogov <dmitry@zend.com> | 2016-11-17 10:42:31 +0300 |
commit | 03ad53741fe052aca884f24bb430acc195cfffe6 (patch) | |
tree | 22750858cb800d0c5129895f5b53ee3e8fa28950 | |
parent | 7f196e321fa464075248eced7d0d2c046b686b24 (diff) | |
parent | f8f35d0d4e297fbed763e5da8467b9cc67ebd42b (diff) | |
download | php-git-03ad53741fe052aca884f24bb430acc195cfffe6.tar.gz |
Merge branch 'PHP-7.1'
* PHP-7.1:
VERIFY_RETURN_TYPE on references can't be eliminated
-rw-r--r-- | ext/opcache/Optimizer/dfa_pass.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/ext/opcache/Optimizer/dfa_pass.c b/ext/opcache/Optimizer/dfa_pass.c index 63faaf62c3..b7a0f065f7 100644 --- a/ext/opcache/Optimizer/dfa_pass.c +++ b/ext/opcache/Optimizer/dfa_pass.c @@ -312,6 +312,10 @@ static inline zend_bool can_elide_return_type_check( zend_ssa_var_info *use_info = &ssa->var_info[ssa_op->op1_use]; zend_ssa_var_info *def_info = &ssa->var_info[ssa_op->op1_def]; + if (use_info->type & MAY_BE_REF) { + return 0; + } + /* A type is possible that is not in the allowed types */ if ((use_info->type & (MAY_BE_ANY|MAY_BE_UNDEF)) & ~(def_info->type & MAY_BE_ANY)) { return 0; |