// { dg-do compile { target c++11 } } // { dg-options "-fabi-version=0" } template struct A { }; struct B { template static int cmp1(T a, T b); static int cmp2(char a, char b); // { dg-final { scan-assembler "_ZN1B1fIcEEvR1AIT_X4cmp1EE" } } template static void f (A &); // { dg-final { scan-assembler "_ZN1B1gIcEEvR1AIT_XsrS_4cmp1EE" } } template static void g (A &); // { dg-final { scan-assembler "_ZN1B1fIcEEvR1AIT_L_ZNS_4cmp2EccEE" } } template static void f (A &); // { dg-final { scan-assembler "_ZN1B1gIcEEvR1AIT_L_ZNS_4cmp2EccEE" } } template static void g (A &); }; void g() { A a; B::f(a); B::g(a); A a2; B::f(a2); B::g(a2); }