blob: ec65654e8e2145fc0d4db32f885386f3a3715f57 [file] [log] [blame]
// Test mangling of type casts
// { dg-do compile }
class A {};
class B : public A {};
template<const A* a> class C {};
template<const B* b> class D {};
template<B* b> class E {};
template<const B* b> void f(D<b> &, C<static_cast<const A*>(b)> &) {}
template<const B* b> void g(D<b> &, E<const_cast<B*>(b)> &) {}
B b;
int main()
{
C<static_cast<const A*>(&b)> c;
D<&b> d;
E<const_cast<B*>(&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\]" } }