https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100673
--- Comment #3 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:8009c79b64b532d8a0966fe3c6d636369df6e35d commit r12-4101-g8009c79b64b532d8a0966fe3c6d636369df6e35d Author: John Eivind Helset <jehel...@gmail.com> Date: Sat May 22 01:53:22 2021 +0200 coroutines: Fix ICE with an invalid await_suspend type [PR100673]. The reported ICE occurs when an invalid (non-template) type is found as the return for an await_suspend. Fixed by amending build_co_await to ensure that await_suspend return- type is a template-instantiation before checking to see if it is a valid coroutine handle type. Signed-off-by: John Eivind Helset <jehel...@gmail.com> Signed-off-by: Iain Sandoe <i...@sandoe.co.uk> PR c++/100673 gcc/cp/ChangeLog: * coroutines.cc (build_co_await): Guard against NULL await_suspend types. gcc/testsuite/ChangeLog: * g++.dg/coroutines/pr100673.C: New test.