1 // Verify mangling of class literals of types with ctors.
2 // { dg-do compile { target c++2a } }
3 // { dg-additional-options -fabi-compat-version=0 }
8 constexpr A (): i (1) { }
9 constexpr A (int i): i (i) { }
14 template <B> struct X { };
16 void f___ (X<B{{ }}>) { }
17 // { dg-final { scan-assembler "_Z4f0001XIXtl1BEEE" } }
19 void f0__ (X<B{{ 0 }}>) { }
20 // { dg-final { scan-assembler "_Z4f0__1XIXtl1BtlA3_1AtlS1_EtlS1_Lc1EEtlS1_Lc1EEEEEE" } }
22 void f00_ (X<B{{ 0, 0 }}>) { }
23 // { dg-final { scan-assembler "_Z4f00_1XIXtl1BtlA3_1AtlS1_EtlS1_EtlS1_Lc1EEEEEE" } }
25 void f000 (X<B{{ 0, 0, 0 }}>) { }
26 // { dg-final { scan-assembler "_Z4f0001XIXtl1BEEE" } }
28 void f1__ (X<B{{ 1 }}>) { }
29 // { dg-final { scan-assembler "_Z4f1__1XIXtl1BtlA3_1AtlS1_Lc1EEtlS1_Lc1EEtlS1_Lc1EEEEEE" } }