On 5/30/25 3:48 PM, Iain Sandoe wrote:
Tested on x86_64-darwin, OK for trunk?
thanks
Iain
OK.
--- 8< ---
These were omitted there as an oversight, most of the error handling
for the coroutines code is specific rather than using generic %qE etc.
gcc/cp/ChangeLog:
* error.cc (dump_expr): Add co_await, co_yield and co_return.
Signed-off-by: Iain Sandoe <i...@sandoe.co.uk>
---
gcc/cp/error.cc | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)
diff --git a/gcc/cp/error.cc b/gcc/cp/error.cc
index a6a4a8c6212..f14d823a9fc 100644
--- a/gcc/cp/error.cc
+++ b/gcc/cp/error.cc
@@ -3244,6 +3244,27 @@ dump_expr (cxx_pretty_printer *pp, tree t, int flags)
break;
}
+ case CO_AWAIT_EXPR:
+ pp_cxx_ws_string (pp, "co_await");
+ pp_cxx_whitespace (pp);
+ dump_expr (pp, TREE_OPERAND (t, 0), flags);
+ break;
+
+ case CO_YIELD_EXPR:
+ pp_cxx_ws_string (pp, "co_yield");
+ pp_cxx_whitespace (pp);
+ dump_expr (pp, TREE_OPERAND (t, 0), flags);
+ break;
+
+ case CO_RETURN_EXPR:
+ pp_cxx_ws_string (pp, "co_return");
+ if (TREE_OPERAND (t, 0))
+ {
+ pp_cxx_whitespace (pp);
+ dump_expr (pp, TREE_OPERAND (t, 0), flags);
+ }
+ break;
+
/* This list is incomplete, but should suffice for now.
It is very important that `sorry' does not call
`report_error_function'. That could cause an infinite loop. */