+; RUN: llvm-pdbdump -all %p/Inputs/ClassLayoutTest.pdb > %t\r
+; RUN: FileCheck -input-file=%t %s -check-prefix=GLOBALS_TEST\r
+; RUN: FileCheck -input-file=%t %s -check-prefix=MEMBERS_TEST\r
+; RUN: FileCheck -input-file=%t %s -check-prefix=BASE_CLASS_A\r
+; RUN: FileCheck -input-file=%t %s -check-prefix=BASE_CLASS_B\r
+; RUN: FileCheck -input-file=%t %s -check-prefix=BASE_CLASS_C\r
+; RUN: FileCheck -input-file=%t %s -check-prefix=BASE_CLASS_D\r
+; RUN: FileCheck -input-file=%t %s -check-prefix=UDT_KIND_TEST\r
+; RUN: FileCheck -input-file=%t %s -check-prefix=BITFIELD_TEST\r
+\r
+; GLOBALS_TEST: ---GLOBALS---\r
+; GLOBALS_TEST-DAG: int GlobalsTest::IntVar\r
+; GLOBALS_TEST-DAG: double GlobalsTest::DoubleVar\r
+; GLOBALS_TEST-DAG: GlobalsTest::Enum GlobalsTest::EnumVar\r
+\r
+; MEMBERS_TEST: ---TYPES---\r
+; MEMBERS_TEST: class MembersTest::A {\r
+; MEMBERS_TEST-DAG: typedef int NestedTypedef\r
+; MEMBERS_TEST-DAG: enum NestedEnum\r
+; MEMBERS_TEST: public:\r
+; MEMBERS_TEST-NEXT: void MemberFunc()\r
+; MEMBERS_TEST-NEXT: private:\r
+; MEMBERS_TEST-DAG: int IntMemberVar\r
+; MEMBERS_TEST-DAG: double DoubleMemberVar\r
+; MEMBERS_TEST: }\r
+\r
+; BASE_CLASS_A: ---TYPES---\r
+; BASE_CLASS_A: class BaseClassTest::A {}\r
+\r
+; BASE_CLASS_B: ---TYPES---\r
+; BASE_CLASS_B: class BaseClassTest::B\r
+; BASE_CLASS_B-NEXT: : public virtual BaseClassTest::A {\r
+\r
+; BASE_CLASS_C: ---TYPES---\r
+; BASE_CLASS_C: class BaseClassTest::C\r
+; BASE_CLASS_C-NEXT: : public virtual BaseClassTest::A {\r
+\r
+; BASE_CLASS_D: ---TYPES---\r
+; BASE_CLASS_D: class BaseClassTest::D\r
+; BASE_CLASS_D-DAG: protected BaseClassTest::B\r
+; BASE_CLASS_D-DAG: private BaseClassTest::C\r
+; BASE_CLASS_D-DAG: protected virtual BaseClassTest::A\r
+\r
+; UDT_KIND_TEST: ---TYPES---\r
+; UDT_KIND_TEST-DAG: union UdtKindTest::C {}\r
+; UDT_KIND_TEST-DAG: class UdtKindTest::B {}\r
+; UDT_KIND_TEST-DAG: struct UdtKindTest::A {}\r
+\r
+; BITFIELD_TEST: ---TYPES---\r
+; BITFIELD_TEST: struct BitFieldTest::A {\r
+; BITFIELD_TEST-NEXT: public:\r
+; BITFIELD_TEST-NEXT: +0x00 int Bits1 : 1\r
+; BITFIELD_TEST-NEXT: +0x00 int Bits2 : 2\r
+; BITFIELD_TEST-NEXT: +0x00 int Bits3 : 3\r
+; BITFIELD_TEST-NEXT: +0x00 int Bits4 : 4\r
+; BITFIELD_TEST-NEXT: +0x00 int Bits22 : 22\r
+; BITFIELD_TEST-NEXT: +0x04 int Offset0x04\r