https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78157
Jonathan Wakely <redi at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- See Also| |https://gcc.gnu.org/bugzill | |a/show_bug.cgi?id=83342 Keywords|diagnostic |rejects-valid --- Comment #3 from Jonathan Wakely <redi at gcc dot gnu.org> --- The "got 1 template parameters" bug was fixed by r252040 so now we print: 78157.C:4:47: error: conflicting declaration 'double A<int>::pi<double, T>' template <> template <class T> double A<int>::pi<double, T> = 3.1415926535897932385; ^~~~~~~~~~~~~ 78157.C:2:39: note: previous declaration as 'T A<int>::pi<T, U>' template<class T, class U> static T pi; ^~ 78157.C: In instantiation of 'double A<int>::pi<double, int>': 78157.C:6:25: required from here 78157.C:6:25: error: explicit instantiation of 'A<int>::pi<double, int>' but no definition available [-fpermissive] template double A<int>::pi<double, int>; ^~~~~~~~~~~~~~~ That seems like it might be PR 83342. In any case, this is a C++ front end bug now, not just a diagnostic one.