https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109790
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Target Milestone|--- |11.4 Last reconfirmed| |2023-05-09 Ever confirmed|0 |1 Keywords| |needs-bisection Known to fail| |10.1.0, 11.1.0, 8.5.0, | |9.3.0 Summary|internal compiler error in |[11/12/13/14 Regression] |write_member_name, at |internal compiler error in |cp/mangle.cc:2992 |write_member_name, at | |cp/mangle.cc:2992 Known to work| |10.3.0, 10.4.0, 9.4.0, | |9.5.0 --- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Reduced: ``` auto ll = [](auto ... ){}; template <class _Impl, class _Args> void mm(void (_Impl::*__p)(_Args) const); template <class _Ts> using __impl_for = decltype(mm(&decltype(ll)::operator()<_Ts>)); template <class _Ts> __impl_for<_Ts> f() { } void aaa() { f<int>(); } ``` as far as I can tell the above is valid C++17 code. It was rejected in 10.1.0, 9.3.0 8.5.0 and started to ICE in 11.1.0. But it was accepted in 10.3.0 10.4.0 9.5.0 9.4.0.