// { dg-do run } //Check whether namespace-scoped template instantiations //are mangled differently. namespace X{ template<class T> struct Y{ int f(T){ return 1; } template<class X>void g(){} }; } template<class T> struct Y{ int f(T){ return 2; } }; int main() { X::Y<int> z; if (z.f(4) != 1) return 1; z.g<long>(); Y<int> z1; if (z1.f(5) != 2) return 1; return 0; }