// { dg-options "-fabi-version=0" } struct A { template int f (); int operator+(); operator int (); template int operator-(); }; typedef int (A::*P)(); template

struct S {}; template void g (S<&T::template f >) {} template void g (S<&T::operator+ >) {} template void g (S<&T::operator int>) {} template void g (S<&T::template operator- >) {} template void g (S<&A::f >); template void g (S<&A::operator+>); template void g (S<&A::operator int>); template void g (S<&A::operator- >); // { dg-final { scan-assembler _Z1gI1AEv1SIXadsrT_1fIiEEE } } // { dg-final { scan-assembler _Z1gI1AEv1SIXadsrT_plEE } } // { dg-final { scan-assembler _Z1gI1AEv1SIXadsrT_cviEE } } // { dg-final { scan-assembler _Z1gI1AEv1SIXadsrT_miIdEEE } }