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))