https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61987

--- Comment #5 from Jonathan Wakely <redi at gcc dot gnu.org> ---
G++ and clang++ call f(double) four times, because that is the only function
visible in the template definition. foo(int) is only visible at the point of
instantiation, so could only be found by ADL, but int has no associated
namespaces.

EDG does call foo(int) twice, and fails to compile because the call with
unsigned long argument could call foo(double) or foo(int) and so is ambiguous.

So either the code never calls foo(int) or the code doesn't compile!

Reply via email to