https://gcc.gnu.org/g:370a0dee5556941c215c2b3fc61a8bcc40ae4942

commit r15-2692-g370a0dee5556941c215c2b3fc61a8bcc40ae4942
Author: Iain Sandoe <i...@sandoe.co.uk>
Date:   Wed Jul 24 20:59:10 2024 +0100

    c++, coroutines: Fix a typo in checking for void expression types.
    
    The current code fails to check for void expression types because it does
    not looup the type.  Fixed thus.
    
    gcc/cp/ChangeLog:
    
            * coroutines.cc (replace_continue): Look up expression type.
    
    Signed-off-by: Iain Sandoe <i...@sandoe.co.uk>

Diff:
---
 gcc/cp/coroutines.cc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gcc/cp/coroutines.cc b/gcc/cp/coroutines.cc
index 91bbe6b0a0eb..9c1e5f0c5d78 100644
--- a/gcc/cp/coroutines.cc
+++ b/gcc/cp/coroutines.cc
@@ -3433,7 +3433,7 @@ replace_continue (tree *stmt, int *do_subtree, void *d)
   tree expr = *stmt;
   if (TREE_CODE (expr) == CLEANUP_POINT_EXPR)
     expr = TREE_OPERAND (expr, 0);
-  if (CONVERT_EXPR_P (expr) && VOID_TYPE_P (expr))
+  if (CONVERT_EXPR_P (expr) && VOID_TYPE_P (TREE_TYPE (expr)))
     expr = TREE_OPERAND (expr, 0);
   STRIP_NOPS (expr);
   if (!STATEMENT_CLASS_P (expr))

Reply via email to