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()11void g() 12 { 13 A<char,cmp1> a; 14 f(a); 15 A<char,cmp2> a2; 16 f(a2); 17 } 18