blob: 7a08194c50052eb73f22333f0ba3ca0aaf252508 [file] [log] [blame]
Zachary Turnerbd336e42017-06-09 20:46:17 +00001; RUN: llvm-pdbutil pretty -all -class-recurse-depth=1 \
Zachary Turnerda949c12017-04-24 17:47:52 +00002; RUN: %p/Inputs/ClassLayoutTest.pdb > %t
Dimitry Andric227b9282016-01-03 17:22:03 +00003; RUN: FileCheck -input-file=%t %s -check-prefix=GLOBALS_TEST
4; RUN: FileCheck -input-file=%t %s -check-prefix=MEMBERS_TEST
5; RUN: FileCheck -input-file=%t %s -check-prefix=BASE_CLASS_A
6; RUN: FileCheck -input-file=%t %s -check-prefix=BASE_CLASS_B
7; RUN: FileCheck -input-file=%t %s -check-prefix=BASE_CLASS_C
8; RUN: FileCheck -input-file=%t %s -check-prefix=BASE_CLASS_D
9; RUN: FileCheck -input-file=%t %s -check-prefix=UDT_KIND_TEST
10; RUN: FileCheck -input-file=%t %s -check-prefix=BITFIELD_TEST
11
12; GLOBALS_TEST: ---GLOBALS---
13; GLOBALS_TEST-DAG: int GlobalsTest::IntVar
14; GLOBALS_TEST-DAG: double GlobalsTest::DoubleVar
15; GLOBALS_TEST-DAG: GlobalsTest::Enum GlobalsTest::EnumVar
16
17; MEMBERS_TEST: ---TYPES---
Zachary Turnerc883a8c2017-04-12 23:18:21 +000018; MEMBERS_TEST: class MembersTest::A [sizeof = 16] {
Dimitry Andric227b9282016-01-03 17:22:03 +000019; MEMBERS_TEST-DAG: typedef int NestedTypedef
20; MEMBERS_TEST-DAG: enum NestedEnum
Zachary Turner10169b62017-04-06 23:43:39 +000021; MEMBERS_TEST: void MemberFunc()
Zachary Turnerc883a8c2017-04-12 23:18:21 +000022; MEMBERS_TEST-DAG: data +0x00 [sizeof=4] int IntMemberVar
23; MEMBERS_TEST-NEXT: <padding> (4 bytes)
24; MEMBERS_TEST-NEXT: data +0x08 [sizeof=8] double DoubleMemberVar
Dimitry Andric227b9282016-01-03 17:22:03 +000025; MEMBERS_TEST: }
26
27; BASE_CLASS_A: ---TYPES---
Zachary Turnerc883a8c2017-04-12 23:18:21 +000028; BASE_CLASS_A: class BaseClassTest::A [sizeof = 1] {}
Dimitry Andric227b9282016-01-03 17:22:03 +000029
30; BASE_CLASS_B: ---TYPES---
Zachary Turnerc883a8c2017-04-12 23:18:21 +000031; BASE_CLASS_B: class BaseClassTest::B [sizeof = 4]
Dimitry Andric227b9282016-01-03 17:22:03 +000032; BASE_CLASS_B-NEXT: : public virtual BaseClassTest::A {
33
34; BASE_CLASS_C: ---TYPES---
Zachary Turnerc883a8c2017-04-12 23:18:21 +000035; BASE_CLASS_C: class BaseClassTest::C [sizeof = 4]
Dimitry Andric227b9282016-01-03 17:22:03 +000036; BASE_CLASS_C-NEXT: : public virtual BaseClassTest::A {
37
38; BASE_CLASS_D: ---TYPES---
Zachary Turnerc883a8c2017-04-12 23:18:21 +000039; BASE_CLASS_D: class BaseClassTest::D [sizeof = 8]
Zachary Turner16901642017-04-24 17:47:24 +000040; BASE_CLASS_D-NEXT: protected BaseClassTest::B
41; BASE_CLASS_D-NEXT: private BaseClassTest::C
Dimitry Andric227b9282016-01-03 17:22:03 +000042
43; UDT_KIND_TEST: ---TYPES---
Zachary Turnerc883a8c2017-04-12 23:18:21 +000044; UDT_KIND_TEST-DAG: union UdtKindTest::C [sizeof = 1] {}
45; UDT_KIND_TEST-DAG: class UdtKindTest::B [sizeof = 1] {}
46; UDT_KIND_TEST-DAG: struct UdtKindTest::A [sizeof = 1] {}
Dimitry Andric227b9282016-01-03 17:22:03 +000047
48; BITFIELD_TEST: ---TYPES---
Zachary Turnerc883a8c2017-04-12 23:18:21 +000049; BITFIELD_TEST: struct BitFieldTest::A [sizeof = 8] {
Zachary Turner0c990bbe2017-04-10 19:33:29 +000050; BITFIELD_TEST-NEXT: +0x00 [sizeof=4] int Bits1 : 1
51; BITFIELD_TEST-NEXT: +0x00 [sizeof=4] int Bits2 : 2
52; BITFIELD_TEST-NEXT: +0x00 [sizeof=4] int Bits3 : 3
53; BITFIELD_TEST-NEXT: +0x00 [sizeof=4] int Bits4 : 4
54; BITFIELD_TEST-NEXT: +0x00 [sizeof=4] int Bits22 : 22
55; BITFIELD_TEST-NEXT: +0x04 [sizeof=4] int Offset0x04