com php-src: Fixed type inference rules.: ext/opcache/Optimizer /zend_inference.c
| From: | Dmitry Stogov | Date: | Tue, 18 Oct 2016 09:39:33 +0000 |
| Subject: | com php-src: Fixed type inference rules.: ext/opcache/Optimizer /zend_inference.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-95187@lists.php.net to get a copy of this message | ||
Commit: ac6134fb64f5aa89aa6ef7bda32c29079c86aea8
Author: Dmitry Stogov <dmitry@zend.com> Tue, 18 Oct 2016 12:39:33 +0300
Parents: 14beea9a36f0d2e1ce4617ff52101dc77fcc6fd1
Branches: PHP-7.1 master
Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=ac6134fb64f5aa89aa6ef7bda32c29079c86aea8
Log:
Fixed type inference rules.
Changed paths:
M ext/opcache/Optimizer/zend_inference.c
Diff:
diff --git a/ext/opcache/Optimizer/zend_inference.c b/ext/opcache/Optimizer/zend_inference.c
index 33bab0e..0635cc5 100644
--- a/ext/opcache/Optimizer/zend_inference.c
+++ b/ext/opcache/Optimizer/zend_inference.c
@@ -2964,15 +2964,17 @@ static void zend_update_type_info(const zend_op_array *op_array,
}
break;
case ZEND_SEND_VAR_EX:
- case ZEND_SEND_VAR_NO_REF:
- case ZEND_SEND_VAR_NO_REF_EX:
- case ZEND_SEND_REF:
-// TODO: ???
if (ssa_ops[i].op1_def >= 0) {
tmp = (t1 &
MAY_BE_UNDEF)|MAY_BE_REF|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_ANY|MAY_BE_ARRAY_KEY_ANY|MAY_BE_ARRAY_OF_ANY|MAY_BE_ARRAY_OF_REF;
UPDATE_SSA_TYPE(tmp, ssa_ops[i].op1_def);
}
break;
+ case ZEND_SEND_REF:
+ if (ssa_ops[i].op1_def >= 0) {
+ tmp =
MAY_BE_REF|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_ANY|MAY_BE_ARRAY_KEY_ANY|MAY_BE_ARRAY_OF_ANY|MAY_BE_ARRAY_OF_REF;
+ UPDATE_SSA_TYPE(tmp, ssa_ops[i].op1_def);
+ }
+ break;
case ZEND_SEND_UNPACK:
if (ssa_ops[i].op1_def >= 0) {
tmp = t1;