1 // { dg-do compile { target c++11 } }
2 // { dg-options "-fabi-version=0" }
3 
4 template<typename T> int cmp1(T a, T b);
5 int cmp2(char a, char b);
6 template<typename T, int (*cmp)(T, T)> struct A { };
7 // { dg-final { scan-assembler "_Z1fIcEvR1AIT_X4cmp1EE" } }
8 template <typename T> void f (A<T,cmp1> &);
9 // { dg-final { scan-assembler "_Z1fIcEvR1AIT_L_Z4cmp2ccEE" } }
10 template <typename T> void f (A<T,cmp2> &);
g()11 void g()
12 {
13   A<char,cmp1> a;
14   f(a);
15   A<char,cmp2> a2;
16   f(a2);
17 }
18