blob: 038befa8f7dbca24e9f5e77de998b95d2b01e985 [file] [log] [blame]
// Verify mangling of class literals of types with ctors.
// { dg-do compile { target c++2a } }
struct A
{
char i;
constexpr A (): i (1) { }
constexpr A (int i): i (i) { }
};
struct B { A a[3]; };
template <B> struct X { };
void f___ (X<B{{ }}>) { }
// { dg-final { scan-assembler "_Z4f0001XIXtl1BEEE" } }
void f0__ (X<B{{ 0 }}>) { }
// { dg-final { scan-assembler "_Z4f0__1XIXtl1BtlA3_1AtlS1_EtlS1_Lc1EEtlS1_Lc1EEEEEE" } }
void f00_ (X<B{{ 0, 0 }}>) { }
// { dg-final { scan-assembler "_Z4f00_1XIXtl1BtlA3_1AtlS1_EtlS1_EtlS1_Lc1EEEEEE" } }
void f000 (X<B{{ 0, 0, 0 }}>) { }
// { dg-final { scan-assembler "_Z4f0001XIXtl1BEEE" } }
void f1__ (X<B{{ 1 }}>) { }
// { dg-final { scan-assembler "_Z4f1__1XIXtl1BtlA3_1AtlS1_Lc1EEtlS1_Lc1EEtlS1_Lc1EEEEEE" } }