diff options
Diffstat (limited to 'gcc/testsuite/g++.dg/abi/mangle4.C')
-rw-r--r-- | gcc/testsuite/g++.dg/abi/mangle4.C | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/abi/mangle4.C b/gcc/testsuite/g++.dg/abi/mangle4.C new file mode 100644 index 000000000..3ce224716 --- /dev/null +++ b/gcc/testsuite/g++.dg/abi/mangle4.C @@ -0,0 +1,24 @@ +// 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)> &) {} // { dg-error "" } +template<const B* b> void g(D<b> &, E<const_cast<B*>(b)> &) {} // { dg-error "" } + +B b; + +int main() +{ + C<static_cast<const A*>(&b)> c; // { dg-error "" } + D<&b> d; + E<const_cast<B*>(&b)> e; // { dg-error "" } + f(d, c); + g(d, e); +} + |