https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61471
Bug ID: 61471 Summary: redeclaration of default-argument in function template declaration not caught Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: filip.roseen at gmail dot com Created attachment 32921 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=32921&action=edit testcase.cpp template<class T> void f(int=3); template<class T> void f(int=3); // ill-formed int main () { } ------------------------ `gcc` inaccurately accepts the above snippet, which is violating the following [dcl.fct.default]p4: > A default argument shall not be redefined b a later declaration > (not even to the same value). ------------------------ By making `f` a non-template the violating is caught, and appropriate diagnostics are shown.