This just uses the higher level API rather than writing out the steps
separately.
Tested on x86_64-darwin, powerpc64-linux, pushed as obvious, thanks
Iain
--- 8< ---
Just shorter code.
gcc/cp/ChangeLog:
* coroutines.cc
(cp_coroutine_transform::wrap_original_function_body): Use
finish_if_stmt instead of manually applying the same process.
Signed-off-by: Iain Sandoe <[email protected]>
---
gcc/cp/coroutines.cc | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/gcc/cp/coroutines.cc b/gcc/cp/coroutines.cc
index c286af7bd07..1d75bbdf5d1 100644
--- a/gcc/cp/coroutines.cc
+++ b/gcc/cp/coroutines.cc
@@ -4483,10 +4483,7 @@ cp_coroutine_transform::wrap_original_function_body ()
suppress_warning (rethrow);
finish_expr_stmt (rethrow);
finish_then_clause (not_iarc_if);
- tree iarc_scope = IF_SCOPE (not_iarc_if);
- IF_SCOPE (not_iarc_if) = NULL;
- not_iarc_if = do_poplevel (iarc_scope);
- add_stmt (not_iarc_if);
+ finish_if_stmt (not_iarc_if);
/* ... else call the promise unhandled exception method
but first we set done = true and the resume index to 0.
If the unhandled exception method returns, then we continue
--
2.39.2 (Apple Git-143)