]> granicus.if.org Git - php/commitdiff
Clone cannot return reference
authorNikita Popov <nikic@php.net>
Fri, 18 Dec 2015 16:34:27 +0000 (17:34 +0100)
committerNikita Popov <nikic@php.net>
Fri, 18 Dec 2015 16:37:13 +0000 (17:37 +0100)
ext/opcache/Optimizer/zend_inference.c

index 438757107552822888638351e875e0caa3b14857..b4a9fe0b7445844259f5a9334f88c72624d79b7a 100644 (file)
@@ -3216,8 +3216,7 @@ static void zend_update_type_info(const zend_op_array *op_array,
                        UPDATE_SSA_TYPE(tmp, ssa_ops[i].result_def);
                        break;
                case ZEND_CLONE:
-                       /* FIXME: For some reason "clone" return reference */
-                       UPDATE_SSA_TYPE(MAY_BE_DEF|MAY_BE_REF|MAY_BE_OBJECT, ssa_ops[i].result_def);
+                       UPDATE_SSA_TYPE(MAY_BE_DEF|MAY_BE_OBJECT, ssa_ops[i].result_def);
                        if ((t1 & MAY_BE_OBJECT) && ssa_ops[i].op1_use >= 0 && ssa_var_info[ssa_ops[i].op1_use].ce) {
                                UPDATE_SSA_OBJ_TYPE(ssa_var_info[ssa_ops[i].op1_use].ce, ssa_var_info[ssa_ops[i].op1_use].is_instanceof, ssa_ops[i].result_def);
                        } else {