PR c++/86728 - C variadic generic lambda.
[official-gcc.git] / gcc / testsuite / g++.dg / abi / mangle51.C
blobe7c2c747a9b7b579c3561d07719b04322259955a
1 // { dg-do compile { target c++11 } }
2 // { dg-options "-fabi-version=0" }
4 void* operator new (__SIZE_TYPE__, void *p) { return p; }
5 int i;
7 template <unsigned int> struct helper {};
8 // { dg-final { scan-assembler "_Z6check1IiEvP6helperIXsznw_T_EEE" } }
9 template <class T> void check1( helper<sizeof(new T)> * ) { }
10 // { dg-final { scan-assembler "_Z6check2IiEvP6helperIXszgsnw_T_piEEE" } }
11 template <class T> void check2( helper<sizeof(::new T())> * ) { }
12 // { dg-final { scan-assembler "_Z6check3IiEvP6helperIXsznwadL_Z1iE_T_piLi1EEEE" } }
13 template <class T> void check3( helper<sizeof(new (&i) T(1))> * ) { }
14 // { dg-final { scan-assembler "_Z7check3aIiEvP6helperIXsznw_T_ilLi1EEEE" } }
15 template <class T> void check3a( helper<sizeof(new T{1})> * ) { }
16 // { dg-final { scan-assembler "_Z6check4IiEvP6helperIXszna_A1_T_EEE" } }
17 template <class T> void check4( helper<sizeof(new T[1])> * ) { }
18 // { dg-final { scan-assembler "_Z6check5IiEvP6helperIXszna_A1_T_piEEE" } }
19 template <class T> void check5( helper<sizeof(new T[1]())> * ) { }
20 int main()
22   check1<int>(0);
23   check2<int>(0);
24   check3<int>(0);
25   check3a<int>(0);
26   check4<int>(0);
27   check5<int>(0);