On 9/1/21 6:56 AM, Iain Sandoe wrote:

When we have a suspend method that returns a coroutine handle
we transfer (hopefully symmetrically, i.e. with a tailcall) to
that new coroutine instead of returning to our resumer.

This adds the variable to the outer block for the actor function
which means that '_Coro_actor_continue' is visible to debug.

Contributory to PR 99215.

OK.

Signed-off-by: Iain Sandoe <i...@sandoe.co.uk>

gcc/cp/ChangeLog:

        * coroutines.cc (build_actor_fn): Make _Coro_actor_continue
        visible to debug.
---
  gcc/cp/coroutines.cc | 1 +
  1 file changed, 1 insertion(+)

diff --git a/gcc/cp/coroutines.cc b/gcc/cp/coroutines.cc
index 395e5c488e5..b32c5dc5e55 100644
--- a/gcc/cp/coroutines.cc
+++ b/gcc/cp/coroutines.cc
@@ -2148,6 +2148,7 @@ build_actor_fn (location_t loc, tree coro_frame_type, 
tree actor, tree fnbody,
                                                 NULL_TREE);
BIND_EXPR_VARS (actor_bind) = continuation;
+  BLOCK_VARS (top_block) = BIND_EXPR_VARS (actor_bind) ;
/* Link in the block associated with the outer scope of the re-written
       function body.  */


Reply via email to