Rebase.
[official-gcc.git] / gcc / testsuite / g++.dg / abi / mangle58.C
blobf9aadc2a9008702446c984ff26466da0563cd8c3
1 // { dg-do compile { target c++11 } }
2 // { dg-options "-fabi-version=0 -Wabi=2" }
4 template<typename T, int (*cmp)(T, T)> struct A { };
5 struct B {
6   template<typename T> static int cmp1(T a, T b);
7   static int cmp2(char a, char b);
8   // { dg-final { scan-assembler "_ZN1B1fIcEEvR1AIT_X4cmp1EE" } }
9   template <typename T> static void f (A<T,cmp1> &);
10   // { dg-final { scan-assembler "_ZN1B1gIcEEvR1AIT_XsrS_4cmp1EE" } }
11   template <typename T> static void g (A<T,B::cmp1> &);
12   // { dg-final { scan-assembler "_ZN1B1fIcEEvR1AIT_L_ZNS_4cmp2EccEE" } }
13   template <typename T> static void f (A<T,cmp2> &); // { dg-warning "mangle" }
14   // { dg-final { scan-assembler "_ZN1B1gIcEEvR1AIT_L_ZNS_4cmp2EccEE" } }
15   template <typename T> static void g (A<T,B::cmp2> &); // { dg-warning "mangle" }
18 void g()
20   A<char,B::cmp1> a;
21   B::f(a);
22   B::g(a);
23   A<char,B::cmp2> a2;
24   B::f(a2);
25   B::g(a2);