summaryrefslogtreecommitdiff
path: root/Zend
diff options
context:
space:
mode:
authorXinchen Hui <laruence@gmail.com>2016-12-21 14:24:14 +0800
committerXinchen Hui <laruence@gmail.com>2016-12-21 14:24:14 +0800
commit82988d3e419c4537e6e5db30c4ea511c4abf29f6 (patch)
tree5300ccd7e801d0cededa8adcba4e52f8e9fafef3 /Zend
parent7e2146293bb4bd7d65725e16c859f62a8d4383b5 (diff)
downloadphp-git-82988d3e419c4537e6e5db30c4ea511c4abf29f6.tar.gz
Revert "Reorder the oplines" (Break Zend/tests/return_types/bug71092.phpt)
This reverts commit a12f43ee2c3d27a7eb9a3c873901643df5f7197e.
Diffstat (limited to 'Zend')
-rw-r--r--Zend/tests/return_types/029.phpt11
-rw-r--r--Zend/zend_compile.c4
2 files changed, 10 insertions, 5 deletions
diff --git a/Zend/tests/return_types/029.phpt b/Zend/tests/return_types/029.phpt
index af13e6a699..adc07cde7f 100644
--- a/Zend/tests/return_types/029.phpt
+++ b/Zend/tests/return_types/029.phpt
@@ -16,8 +16,13 @@ function foo() : array {
foo();
?>
--EXPECTF--
-Fatal error: Uncaught TypeError: Return value of foo() must be of the type array, null returned in %s029.php:%d
+Fatal error: Uncaught Exception: xxxx in %s:%d
Stack trace:
-#0 %s: foo()
+#0 %s(%d): foo()
#1 {main}
- thrown in %s on line %d
+
+Next TypeError: Return value of foo() must be of the type array, null returned in %s29.php:%d
+Stack trace:
+#0 %s(%d): foo()
+#1 {main}
+ thrown in %s029.php on line %d
diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c
index 71599e0e08..c8f2eefa7d 100644
--- a/Zend/zend_compile.c
+++ b/Zend/zend_compile.c
@@ -4209,14 +4209,14 @@ void zend_compile_return(zend_ast *ast) /* {{{ */
}
}
- zend_handle_loops_and_finally((expr_node.op_type & (IS_TMP_VAR | IS_VAR)) ? &expr_node : NULL);
-
/* Generator return types are handled separately */
if (!is_generator && CG(active_op_array)->fn_flags & ZEND_ACC_HAS_RETURN_TYPE) {
zend_emit_return_type_check(
expr_ast ? &expr_node : NULL, CG(active_op_array)->arg_info - 1, 0);
}
+ zend_handle_loops_and_finally((expr_node.op_type & (IS_TMP_VAR | IS_VAR)) ? &expr_node : NULL);
+
opline = zend_emit_op(NULL, by_ref ? ZEND_RETURN_BY_REF : ZEND_RETURN,
&expr_node, NULL);