]> git.ipfire.org Git - thirdparty/gcc.git/commit
c++, coroutines: Make a check more specific [PR109283].
authorIain Sandoe <iain@sandoe.co.uk>
Thu, 29 May 2025 14:45:29 +0000 (15:45 +0100)
committerIain Sandoe <iain@sandoe.co.uk>
Tue, 29 Jul 2025 15:04:46 +0000 (16:04 +0100)
commit20a4cf9f96fee2872c415055179fc3353f37e7f0
treed3d89cbe6bd7beb02e6808b5f81aa20d41ba6b6a
parentae9ccc700bda405b387cd0a6318b00138027f388
c++, coroutines: Make a check more specific [PR109283].

The check was intended to assert that we had visited contained
ternary expressions with embedded co_awaits, but had been made
too general - and therefore was ICEing on code that was actually
OK.  Fixed by checking specifically that no co_awaits embedded.

PR c++/109283

gcc/cp/ChangeLog:

* coroutines.cc (find_any_await): Only save the statement
pointer if the caller passes a place for it.
(flatten_await_stmt): When checking that ternary expressions
have been handled, also check that they contain a co_await.

gcc/testsuite/ChangeLog:

* g++.dg/coroutines/pr109283.C: New test.

Signed-off-by: Iain Sandoe <iain@sandoe.co.uk>
(cherry picked from commit 977fadd69776e2a8a6daca43e1c898bc4f87154d)
gcc/cp/coroutines.cc
gcc/testsuite/g++.dg/coroutines/pr109283.C [new file with mode: 0644]