From e4d8388ea6b014cec04c93fb28dcc5cbd68eea3f Mon Sep 17 00:00:00 2001 From: Daniel Hannon Date: Sun, 14 Jun 2026 20:42:48 +0100 Subject: [PATCH 1/2] P3950R1 return_value & return_void Are Not Mutually Exclusive --- source/declarations.tex | 11 ----------- source/statements.tex | 3 +-- 2 files changed, 1 insertion(+), 13 deletions(-) diff --git a/source/declarations.tex b/source/declarations.tex index 627360a226..b1808fb9c8 100644 --- a/source/declarations.tex +++ b/source/declarations.tex @@ -7371,17 +7371,6 @@ of a coroutine is ill-formed\iref{dcl.contract.func}. \end{note} -\pnum -If searches for the names \tcode{return_void} and \tcode{return_value} -in the scope of the promise type each find any declarations, -the program is ill-formed. -\begin{note} -If \tcode{return_void} is found, flowing off -the end of a coroutine is equivalent to a \keyword{co_return} with no operand. -Otherwise, flowing off the end of a coroutine -results in undefined behavior\iref{stmt.return.coroutine}. -\end{note} - \pnum The expression \tcode{\exposid{promise}.get_return_object()} is used to initialize diff --git a/source/statements.tex b/source/statements.tex index fa6944b172..7602093608 100644 --- a/source/statements.tex +++ b/source/statements.tex @@ -1221,8 +1221,7 @@ \end{itemize} \pnum -If a search for the name \tcode{return_void} in the scope of the promise type -finds any declarations, +If overload resolution for \placeholder{p}\tcode{.return_void()} succeeds, flowing off the end of a coroutine's \grammarterm{function-body} is equivalent to a \keyword{co_return} with no operand; otherwise flowing off the end of a coroutine's \grammarterm{function-body} From 1ea94258cfe8f785b41f4fccccd4a0d99e464776 Mon Sep 17 00:00:00 2001 From: Daniel Hannon Date: Mon, 15 Jun 2026 20:58:58 +0100 Subject: [PATCH 2/2] fixup: added missing bump of __cpp_impl_coroutine --- source/preprocessor.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/preprocessor.tex b/source/preprocessor.tex index 0bfb7f194f..978911959b 100644 --- a/source/preprocessor.tex +++ b/source/preprocessor.tex @@ -2408,7 +2408,7 @@ \defnxname{cpp_hex_float} & \tcode{201603L} \\ \rowsep \defnxname{cpp_if_consteval} & \tcode{202106L} \\ \rowsep \defnxname{cpp_if_constexpr} & \tcode{201606L} \\ \rowsep -\defnxname{cpp_impl_coroutine} & \tcode{201902L} \\ \rowsep +\defnxname{cpp_impl_coroutine} & \tcode{202606L} \\ \rowsep \defnxname{cpp_impl_destroying_delete} & \tcode{201806L} \\ \rowsep \defnxname{cpp_impl_reflection} & \tcode{202603L} \\ \rowsep \defnxname{cpp_impl_three_way_comparison} & \tcode{201907L} \\ \rowsep