https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91467
Jonathan Wakely <redi at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords|ice-on-valid-code |ice-on-invalid-code Known to work| |10.0 Blocks| |67491 --- Comment #1 from Jonathan Wakely <redi at gcc dot gnu.org> --- With an updated testcase using C++2a syntax there's no ICE on current trunk: template<typename, typename> constexpr bool same = false; template<typename T> constexpr bool same<T, T> = true; template<typename T, typename U> concept same_as = same<T, U>; template<typename T> struct foo { T t; template<typename U> void set(U&& u) requires requires { { static_cast<U&&>(u)} -> same_as<T>; } { t = static_cast<U&&>(u); } }; int main() { auto w = foo<int>{5}; w.set(5.0f); } Referenced Bugs: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67491 [Bug 67491] [meta-bug] concepts issues