https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95505
--- Comment #3 from Iain Sandoe <iains at gcc dot gnu.org> --- we're also discussing whether there's a good way to make this available automatically. clang's current implementation includes <new> unconditionally, which is a possible solution - I'm not thrilled about blanket inclusion of other library headers (especially when they are not actually directly used by the including one). It's a somewhat odd situation - neither <coroutine> nor (quite likely) the user's code necessarily overly needs "<new>" .. it's an indirect requirement. So another possibility is to make the std::no throw_t type available and just construct a temporary object of that type when doing the lookup. So the ICE is fixed by diagnosing the issue, and making things 'easier' is on the TODO (but not part of this PR).