https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104051
--- Comment #2 from CVS Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Iain D Sandoe <ia...@gcc.gnu.org>: https://gcc.gnu.org/g:7b96274a340bc0e9bcaef9baff3a44ec2f12c3df commit r12-8310-g7b96274a340bc0e9bcaef9baff3a44ec2f12c3df Author: Iain Sandoe <i...@sandoe.co.uk> Date: Mon Apr 18 16:23:30 2022 +0100 c++, coroutines: Improve check for throwing final await [PR104051]. We check that the final_suspend () method returns a sane type (i.e. a class or structure) but, unfortunately, that check has to be later than the one for a throwing case. If the use returns some nonsensical type from the method, we need to handle that in the checking for noexcept. Signed-off-by: Iain Sandoe <i...@sandoe.co.uk> PR c++/104051 gcc/cp/ChangeLog: * coroutines.cc (coro_diagnose_throwing_final_aw_expr): Handle non-target expression inputs. gcc/testsuite/ChangeLog: * g++.dg/coroutines/pr104051.C: New test.