public inbox for gcc-bugs@sourceware.org help / color / mirror / Atom feed
* [Bug c++/107408] New: Inaccurate "error: too many template-parameter-lists" diagnostic for missing template argument list @ 2022-10-26 8:39 redi at gcc dot gnu.org 2022-10-26 8:39 ` [Bug c++/107408] " redi at gcc dot gnu.org 2022-10-26 8:40 ` redi at gcc dot gnu.org 0 siblings, 2 replies; 3+ messages in thread From: redi at gcc dot gnu.org @ 2022-10-26 8:39 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107408 Bug ID: 107408 Summary: Inaccurate "error: too many template-parameter-lists" diagnostic for missing template argument list Product: gcc Version: 13.0 Status: UNCONFIRMED Keywords: diagnostic Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: redi at gcc dot gnu.org Target Milestone: --- template<class T> struct S { template<class U> S(U); }; template<class T> template<class U> S::S(U) { } This prints: t.C:6:38: error: too many template-parameter-lists 6 | template<class T> template<class U> S::S(U) { } | ^~ The caret is in the right location, but the diagnostic message is misleading. The problem is a missing template argument list, it should be S<T>::S(U) ^ permalink raw reply [flat|nested] 3+ messages in thread
* [Bug c++/107408] Inaccurate "error: too many template-parameter-lists" diagnostic for missing template argument list 2022-10-26 8:39 [Bug c++/107408] New: Inaccurate "error: too many template-parameter-lists" diagnostic for missing template argument list redi at gcc dot gnu.org @ 2022-10-26 8:39 ` redi at gcc dot gnu.org 2022-10-26 8:40 ` redi at gcc dot gnu.org 1 sibling, 0 replies; 3+ messages in thread From: redi at gcc dot gnu.org @ 2022-10-26 8:39 UTC (permalink / raw) To: gcc-bugs 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. ^ permalink raw reply [flat|nested] 3+ messages in thread
* [Bug c++/107408] Inaccurate "error: too many template-parameter-lists" diagnostic for missing template argument list 2022-10-26 8:39 [Bug c++/107408] New: Inaccurate "error: too many template-parameter-lists" diagnostic for missing template argument list redi at gcc dot gnu.org 2022-10-26 8:39 ` [Bug c++/107408] " redi at gcc dot gnu.org @ 2022-10-26 8:40 ` redi at gcc dot gnu.org 1 sibling, 0 replies; 3+ messages in thread From: redi at gcc dot gnu.org @ 2022-10-26 8:40 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107408 --- Comment #2 from Jonathan Wakely <redi at gcc dot gnu.org> --- EDG gets it right: "t.C", line 6: error: name followed by "::" must be a class or namespace name template<class T> template<class U> S::S(U) { } ^ "t.C", line 6: error: argument list for class template "S" is missing template<class T> template<class U> S::S(U) { } ^ 2 errors detected in the compilation of "t.C". ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2022-10-26 8:40 UTC | newest] Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2022-10-26 8:39 [Bug c++/107408] New: Inaccurate "error: too many template-parameter-lists" diagnostic for missing template argument list redi at gcc dot gnu.org 2022-10-26 8:39 ` [Bug c++/107408] " redi at gcc dot gnu.org 2022-10-26 8:40 ` redi at gcc dot gnu.org
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).