// Test mangling of type casts // { dg-do compile } class A {}; class B : A {}; template class C {}; template class D {}; template class E {}; template void f(D &, C(b)> &) {} template void g(D &, E(b)> &) {} B b; int main() { C(&b)> c; D<&b> d; E(&b)> e; f(d, c); g(d, e); } // { dg-final { scan-assembler "\n_?_Z1fIXadL_Z1bEEEvR1DIXT_EER1CIXcvPK1AT_EE\[: \t\n\]" } } // { dg-final { scan-assembler "\n_?_Z1gIXadL_Z1bEEEvR1DIXT_EER1EIXcvP1BT_EE\[: \t\n\]" } }