Hi,

When amending the function re-write code, I made a typo in
the block connections.  This has not shown up in any test
fails (as far as can be seen) but is a regression in debug
info.

Fixed thus.

tested on x86_64-darwin, linux,
pushed to master as obvious, I plan to back-port it where needed
unless any objection is raised.
thanks
Iain

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

gcc/cp/ChangeLog:

        * coroutines.cc
        (coro_rewrite_function_body): Connect the replacement
        function block to the block nest correctly.
---
 gcc/cp/coroutines.cc | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gcc/cp/coroutines.cc b/gcc/cp/coroutines.cc
index a1b0b31f497..f5ae2d6d101 100644
--- a/gcc/cp/coroutines.cc
+++ b/gcc/cp/coroutines.cc
@@ -4055,8 +4055,8 @@ coro_rewrite_function_body (location_t fn_start, tree 
fnbody, tree orig,
       BIND_EXPR_BLOCK (first) = replace_blk;
       /* The top block has one child, so far, and we have now got a 
         superblock.  */
-      BLOCK_SUPERCONTEXT (block) = top_block;
-      BLOCK_SUBBLOCKS (top_block) = block;
+      BLOCK_SUPERCONTEXT (replace_blk) = top_block;
+      BLOCK_SUBBLOCKS (top_block) = replace_blk;
     }
 
   /* Wrap the function body in a try {} catch (...) {} block, if exceptions
-- 
2.24.1


Reply via email to