// PR c++/13157 namespace aa { double abs(double); long double abs(long double); } namespace fu { template struct X {}; template X test(X x) { using ::aa::abs; return abs(x); } template X abs(X); X x; X z = test(x); }