https://gcc.gnu.org/bugzilla/show_bug.cgi?id=55809
--- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
MSVC gives:
<source>(3): error C2995: 'void f(void)': function template has already been
defined
<source>(2): note: see declaration of 'f'
<source>(2): error C3861: 'f': identifier not found
ICC gives:
<source>(11): error: more than one instance of overloaded function "f" matches
the argument list:
function template "void f<T,<unnamed>>()"
function template "void f<T,<unnamed>>()"
int main() { f<A, &x2>(); f<B, &x1>(); }
^
clang accepts it.