1 // { dg-options "-std=c++0x -fabi-version=0" }
3 template<typename T, int (*cmp)(T, T)> struct A { };
5 template<typename T> static int cmp1(T a, T b);
6 static int cmp2(char a, char b);
7 // { dg-final { scan-assembler "_ZN1B1fIcEEvR1AIT_X4cmp1EE" } }
8 template <typename T> static void f (A<T,cmp1> &);
9 // { dg-final { scan-assembler "_ZN1B1gIcEEvR1AIT_XsrS_4cmp1EE" } }
10 template <typename T> static void g (A<T,B::cmp1> &);
11 // { dg-final { scan-assembler "_ZN1B1fIcEEvR1AIT_L_ZNS_4cmp2EccEE" } }
12 template <typename T> static void f (A<T,cmp2> &);
13 // { dg-final { scan-assembler "_ZN1B1gIcEEvR1AIT_L_ZNS_4cmp2EccEE" } }
14 template <typename T> static void g (A<T,B::cmp2> &);