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.