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