blob: fafa5d4e58e6df49d7e8f54fa8c8a91aecd73183 [file] [log] [blame]
John McCall82b7d7b2010-10-18 21:28:44 +00001// RUN: %clang_cc1 %s -emit-llvm -o - | FileCheck %s
2
3// CHECK: @_ZTVZZ1HvEN1S1IEvE1S =
4
5// CHECK: define {{.*}} @_Z2L1v(
6// CHECK: define {{.*}} @_ZZ2L1vEN1S2L2Ev(
7// CHECK: define {{.*}} @_ZZ2L1vEN1S2L2E_0v(
8// CHECK: define {{.*}} @_ZZ1FvEN1S1T1S1T1GEv(
9// CHECK: define {{.*}} @_ZZZ2L1vEN1S2L2E_0vEN1S3L3cEv(
10// CHECK: define {{.*}} @_ZZZ2L1vEN1S2L2E_0vEN1S3L3dE_0v(
11// CHECK: define {{.*}} @_ZZZ2L1vEN1S2L2EvEN1S3L3aEv(
12// CHECK: define {{.*}} @_ZZZ2L1vEN1S2L2EvEN1S3L3bE_0v(
13
14void L1() {
15 {
16 struct S {
17 void L2() {
18 {
19 struct S {
20 void L3a() {}
21 };
22 S().L3a();
23 }
24 {
25 struct S {
26 void L3b() {}
27 };
28 S().L3b();
29 }
30 }
31 };
32 S().L2();
33 }
34 {
35 struct S {
36 void L2() {
37 {
38 struct S {
39 void L3c() {}
40 };
41 S().L3c();
42 }
43 {
44 struct S {
45 void L3d() {}
46 };
47 S().L3d();
48 }
49 }
50 };
51 S().L2();
52 }
53}
54
55void F() {
56 struct S {
57 struct T {
58 struct S {
59 struct T {
60 void G() {}
61 };
62 };
63 };
64 };
65 S::T::S::T().G();
66}
67
68struct B { virtual void Foo() = 0; };
69void G(const B &);
70
71void H() {
72 struct S {
73 void I() {
74 struct S : B {
75 virtual void Foo() {}
76 };
77 G(S());
78 }
79 };
80 S().I();
81}