https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107408
--- Comment #1 from Jonathan Wakely <redi at gcc dot gnu.org> --- Clang prints three errors. The first one hints at the real problem, but the next two are bogus: t.C:6:37: error: 'S' is not a class, namespace, or enumeration template<class T> template<class U> S::S(U) { } ^ t.C:1:26: note: 'S' declared here template<class T> struct S ^ t.C:6:1: error: extraneous template parameter list in template specialization or out-of-line template definition template<class T> template<class U> S::S(U) { } ^~~~~~~~~~~~~~~~~ t.C:6:48: error: expected ';' at end of declaration template<class T> template<class U> S::S(U) { } ^ ; 3 errors generated.