summaryrefslogtreecommitdiff
path: root/Zend/zend_compile.c
diff options
context:
space:
mode:
authorNikita Popov <nikic@php.net>2016-02-12 17:58:12 +0100
committerNikita Popov <nikic@php.net>2016-02-12 17:58:12 +0100
commitd1b777bd992525ced913a033bd7fff9490614f52 (patch)
tree395480a3ff7ffd1c30e019fae67a344d5b59ea92 /Zend/zend_compile.c
parent44ed1cb5c053c290c607c2ec5249c6241c979d5a (diff)
parentccc06e252bdf4c54cb2c96dbcab9a2aeb933181c (diff)
downloadphp-git-d1b777bd992525ced913a033bd7fff9490614f52.tar.gz
Merge branch 'PHP-7.0'
Diffstat (limited to 'Zend/zend_compile.c')
-rw-r--r--Zend/zend_compile.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c
index 2cb9ed08b4..83d042d6e7 100644
--- a/Zend/zend_compile.c
+++ b/Zend/zend_compile.c
@@ -6616,6 +6616,11 @@ void zend_compile_yield_from(znode *result, zend_ast *ast) /* {{{ */
zend_mark_function_as_generator();
+ if (CG(active_op_array)->fn_flags & ZEND_ACC_RETURN_REFERENCE) {
+ zend_error_noreturn(E_COMPILE_ERROR,
+ "Cannot use \"yield from\" inside a by-reference generator");
+ }
+
zend_compile_expr(&expr_node, expr_ast);
zend_emit_op_tmp(result, ZEND_YIELD_FROM, &expr_node, NULL);
}