// Verify mangling of class literals of types with ctors. // { dg-do compile { target c++2a } } // { dg-additional-options -fabi-compat-version=0 } struct A { char i; constexpr A (): i (1) { } constexpr A (int i): i (i) { } }; struct B { A a[3]; }; template struct X { }; void f___ (X) { } // { dg-final { scan-assembler "_Z4f0001XIXtl1BEEE" } } void f0__ (X) { } // { dg-final { scan-assembler "_Z4f0__1XIXtl1BtlA3_1AtlS1_EtlS1_Lc1EEtlS1_Lc1EEEEEE" } } void f00_ (X) { } // { dg-final { scan-assembler "_Z4f00_1XIXtl1BtlA3_1AtlS1_EtlS1_EtlS1_Lc1EEEEEE" } } void f000 (X) { } // { dg-final { scan-assembler "_Z4f0001XIXtl1BEEE" } } void f1__ (X) { } // { dg-final { scan-assembler "_Z4f1__1XIXtl1BtlA3_1AtlS1_Lc1EEtlS1_Lc1EEtlS1_Lc1EEEEEE" } }