view gcc/testsuite/g++.dg/abi/mangle71.C @ 145:1830386684a0

gcc-9.2.0
author anatofuz
date Thu, 13 Feb 2020 11:34:05 +0900
parents
children
line wrap: on
line source

// Verify manglinng 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 "_Z4f___1XIXtl1BtlA3_1AtlS1_Lc1EEEEEE" } }

void f0__ (X<B{{ 0 }}>) { }
// { dg-final { scan-assembler "_Z4f0__1XIXtl1BtlA3_1AtlS1_Lc0EEtlS1_Lc1EEEEEE" } }

void f00_ (X<B{{ 0, 0 }}>) { }
// { dg-final { scan-assembler "_Z4f00_1XIXtl1BtlA3_1AtlS1_Lc0EEtlS1_Lc0EEtlS1_Lc1EEEEEE" } }

void f000 (X<B{{ 0, 0, 0 }}>) { }
// { dg-final { scan-assembler "_Z4f0001XIXtl1BtlA3_1AtlS1_Lc0EEtlS1_Lc0EEtlS1_Lc0EEEEEE" } }

void f1__ (X<B{{ 1 }}>) { }
// { dg-final { scan-assembler "_Z4f1__1XIXtl1BtlA3_1AtlS1_Lc1EEtlS1_Lc1EEEEEE" } }