https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64924
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |accepts-invalid --- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Short testcase: template<typename T> struct PP { PP(typename PP::gg n); typedef void (T::*gg)(void); }; template<typename T> PP<T>::PP(gg n) {} ---- CUT ---- We also accept invalid code too: template<typename T> struct PP { PP(typename PP::gg n); typedef int gg; }; template<typename T> PP<T>::PP(gg n) {}