testsuite: suppress mangling compatibility aliases
[official-gcc.git] / gcc / testsuite / g++.dg / abi / mangle52.C
blobb42b58dd87d8f9d849937240a5f7014a666f87e2
1 // { dg-options "-fabi-version=18 -fabi-compat-version=18 -Wabi=2" }
3 template <unsigned int> struct helper {};
4 // { dg-final { scan-assembler "\n_?_Z6check1IiEvP6helperIXszscT_Li1EEE\[: \t\n\]" } }
5 template <class T> void check1( helper<sizeof(static_cast<T>(1))> * ) { } // { dg-warning "mangle" }
6 // { dg-final { scan-assembler "\n_?_Z6check2IiXadL_Z1iEEEvP6helperIXszccPT_T0_EE\[: \t\n\]" } }
7 template <class T, T* p> void check2( helper<sizeof(const_cast<T*>(p))> * ) { } // { dg-warning "mangle" }
8 // { dg-final { scan-assembler "\n_?_Z6check3IiEvP6helperIXszrcPT_Li0EEE\[: \t\n\]" } }
9 template <class T> void check3( helper<sizeof(reinterpret_cast<T*>(0))> * ) { }
10 // { dg-final { scan-assembler "\n_?_Z6check4I1AXadL_Z1aEEEvP6helperIXszdcPT_T0_EE\[: \t\n\]" } }
11 template <class T, T* p> void check4( helper<sizeof(dynamic_cast<T*>(p))> * ) { }
13 struct A{} a;
14 int i;
15 int main()
17   check1<int>(0);
18   check2<int,&i>(0);
19   check3<int>(0);
20   check4<A,&a>(0);