Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / clang / test / CodeGenCXX / mangle-local-classes-nested.cpp
blob5daf0c06422452356282e6fe430c862092a59401
1 // RUN: %clang_cc1 %s -emit-llvm -triple %itanium_abi_triple -o - | FileCheck %s
3 // CHECK: @_ZTVZZ1HvEN1S1IEvE1S =
5 // CHECK: define {{.*}} @_Z2L1v(
6 // CHECK: define {{.*}} @_ZZ2L1vEN1S2L2Ev(
7 // CHECK: define {{.*}} @_ZZ2L1vEN1S2L2E_0v(
8 // CHECK: define {{.*}} @_ZZ1FvEN1S1T1S1T1GEv(
9 // CHECK: define {{.*}} @_ZZZ2L1vEN1S2L2EvEN1S3L3aEv(
10 // CHECK: define {{.*}} @_ZZZ2L1vEN1S2L2EvEN1S3L3bE_0v(
11 // CHECK: define {{.*}} @_ZZZ2L1vEN1S2L2E_0vEN1S3L3cEv(
12 // CHECK: define {{.*}} @_ZZZ2L1vEN1S2L2E_0vEN1S3L3dE_0v(
14 void L1() {
16 struct S {
17 void L2() {
19 struct S {
20 void L3a() {}
22 S().L3a();
25 struct S {
26 void L3b() {}
28 S().L3b();
32 S().L2();
35 struct S {
36 void L2() {
38 struct S {
39 void L3c() {}
41 S().L3c();
44 struct S {
45 void L3d() {}
47 S().L3d();
51 S().L2();
55 void F() {
56 struct S {
57 struct T {
58 struct S {
59 struct T {
60 void G() {}
65 S::T::S::T().G();
68 struct B { virtual void Foo() = 0; };
69 void G(const B &);
71 void H() {
72 struct S {
73 void I() {
74 struct S : B {
75 virtual void Foo() {}
77 G(S());
80 S().I();