1; RUN: llvm-pdbdump -all %p/Inputs/ClassLayoutTest.pdb > %t
2; RUN: FileCheck -input-file=%t %s -check-prefix=GLOBALS_TEST
3; RUN: FileCheck -input-file=%t %s -check-prefix=MEMBERS_TEST
4; RUN: FileCheck -input-file=%t %s -check-prefix=BASE_CLASS_A
5; RUN: FileCheck -input-file=%t %s -check-prefix=BASE_CLASS_B
6; RUN: FileCheck -input-file=%t %s -check-prefix=BASE_CLASS_C
7; RUN: FileCheck -input-file=%t %s -check-prefix=BASE_CLASS_D
8; RUN: FileCheck -input-file=%t %s -check-prefix=UDT_KIND_TEST
9; RUN: FileCheck -input-file=%t %s -check-prefix=BITFIELD_TEST
10
11; GLOBALS_TEST: ---GLOBALS---
12; GLOBALS_TEST-DAG: int GlobalsTest::IntVar
13; GLOBALS_TEST-DAG: double GlobalsTest::DoubleVar
14; GLOBALS_TEST-DAG: GlobalsTest::Enum GlobalsTest::EnumVar
15
16; MEMBERS_TEST: ---TYPES---
17; MEMBERS_TEST: class MembersTest::A {
18; MEMBERS_TEST-DAG: typedef int NestedTypedef
19; MEMBERS_TEST-DAG: enum NestedEnum
20; MEMBERS_TEST: public:
21; MEMBERS_TEST-NEXT: void MemberFunc()
22; MEMBERS_TEST-NEXT: private:
23; MEMBERS_TEST-DAG: int IntMemberVar
24; MEMBERS_TEST-DAG: double DoubleMemberVar
25; MEMBERS_TEST: }
26
27; BASE_CLASS_A: ---TYPES---
28; BASE_CLASS_A: class BaseClassTest::A {}
29
30; BASE_CLASS_B: ---TYPES---
31; BASE_CLASS_B: class BaseClassTest::B
32; BASE_CLASS_B-NEXT: : public virtual BaseClassTest::A {
33
34; BASE_CLASS_C: ---TYPES---
35; BASE_CLASS_C: class BaseClassTest::C
36; BASE_CLASS_C-NEXT: : public virtual BaseClassTest::A {
37
38; BASE_CLASS_D: ---TYPES---
39; BASE_CLASS_D: class BaseClassTest::D
40; BASE_CLASS_D-DAG: protected BaseClassTest::B
41; BASE_CLASS_D-DAG: private BaseClassTest::C
42; BASE_CLASS_D-DAG: protected virtual BaseClassTest::A
43
44; UDT_KIND_TEST: ---TYPES---
45; UDT_KIND_TEST-DAG: union UdtKindTest::C {}
46; UDT_KIND_TEST-DAG: class UdtKindTest::B {}
47; UDT_KIND_TEST-DAG: struct UdtKindTest::A {}
48
49; BITFIELD_TEST: ---TYPES---
50; BITFIELD_TEST: struct BitFieldTest::A {
51; BITFIELD_TEST-NEXT: public:
52; BITFIELD_TEST-NEXT: +0x00 int Bits1 : 1
53; BITFIELD_TEST-NEXT: +0x00 int Bits2 : 2
54; BITFIELD_TEST-NEXT: +0x00 int Bits3 : 3
55; BITFIELD_TEST-NEXT: +0x00 int Bits4 : 4
56; BITFIELD_TEST-NEXT: +0x00 int Bits22 : 22
57; BITFIELD_TEST-NEXT: +0x04 int Offset0x04
58