diff options
| author | Xinchen Hui <laruence@gmail.com> | 2016-12-21 14:24:14 +0800 |
|---|---|---|
| committer | Xinchen Hui <laruence@gmail.com> | 2016-12-21 14:24:14 +0800 |
| commit | 82988d3e419c4537e6e5db30c4ea511c4abf29f6 (patch) | |
| tree | 5300ccd7e801d0cededa8adcba4e52f8e9fafef3 /Zend | |
| parent | 7e2146293bb4bd7d65725e16c859f62a8d4383b5 (diff) | |
| download | php-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.phpt | 11 | ||||
| -rw-r--r-- | Zend/zend_compile.c | 4 |
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); |
