[pushed] coroutines: Partial reversion of r11-437-g5ef067eb14d4.
Iain Sandoe
iain@sandoe.co.uk
Thu May 21 19:49:42 GMT 2020
Hi
I got a bit over-zealous in the attempt to make better use of the higher-
level APIs in the c++ FE, this reverts that part of the change,
Tested on x86_64-darwin,
applied to master,
thanks
Iain
====
co_returns are statements, not expressions; they do not need
to be wrapped in an EXPR_STMT.
gcc/cp/ChangeLog:
* coroutines.cc (finish_co_return_stmt): Revert change to use
finish_expr_stmt.
---
gcc/cp/coroutines.cc | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/gcc/cp/coroutines.cc b/gcc/cp/coroutines.cc
index 4cbc0e09994..b79e2c66b70 100644
--- a/gcc/cp/coroutines.cc
+++ b/gcc/cp/coroutines.cc
@@ -1102,7 +1102,8 @@ finish_co_return_stmt (location_t kw, tree expr)
" %<co_return%> statement");
expr = build2_loc (kw, CO_RETURN_EXPR, void_type_node, expr, co_ret_call);
- return finish_expr_stmt (expr);
+ expr = maybe_cleanup_point_expr_void (expr);
+ return add_stmt (expr);
}
/* We need to validate the arguments to __builtin_coro_promise, since the
--
2.24.1
More information about the Gcc-patches
mailing list