// RUN: %clang_cc1 -fno-rtti -emit-llvm-only -triple i686-pc-win32 -fms-extensions -fdump-record-layouts -fsyntax-only %s 2>/dev/null \
// RUN:            | FileCheck %s
// RUN: %clang_cc1 -fno-rtti -emit-llvm-only -triple x86_64-pc-win32 -fms-extensions -fdump-record-layouts -fsyntax-only %s 2>/dev/null \
// RUN:            | FileCheck %s -check-prefix CHECK-X64

extern "C" int printf(const char *fmt, ...);

struct B0 { B0() { printf("B0 = %p\n", this); } };
struct B1 { B1() { printf("B1 = %p\n", this); } };
struct B2 { B2() { printf("B2 = %p\n", this); } };
struct B3 { B3() { printf("B3 = %p\n", this); } };
struct B4 { B4() { printf("B4 = %p\n", this); } };
struct B5 { B5() { printf("B5 = %p\n", this); } };
struct __declspec(align(2)) B6 { B6() { printf("B6 = %p\n", this); } };
struct __declspec(align(16)) B7 { B7() { printf("B7 = %p\n", this); } };
struct B8 { char c[5]; B8() { printf("B8 = %p\n", this); } };
struct B9 { char c[6]; B9() { printf("B9 = %p\n", this); } };
struct B10 { char c[7]; B10() { printf("B10 = %p\n", this); } };
struct B11 { char c[8]; B11() { printf("B11 = %p\n", this); } };
struct B0X { B0X() { printf("B0 = %p\n", this); } };
struct B1X { B1X() { printf("B1 = %p\n", this); } };
struct __declspec(align(16)) B2X { B2X() { printf("B2 = %p\n", this); } };
struct __declspec(align(2)) B3X { B3X() { printf("B3 = %p\n", this); } };
struct B4X { B4X() { printf("B4 = %p\n", this); } };
struct B5X { B5X() { printf("B5 = %p\n", this); } };
struct B6X { B6X() { printf("B6 = %p\n", this); } };
struct B8X { short a; B8X() : a(0x000000B8) { printf("B8 = %p\n", this); } };

struct AA : B8, B1, virtual B0 {
	int a;
	AA() : a(0x000000AA) { printf("AA = %p\n", this); }
};

// CHECK: *** Dumping AST Record Layout
// CHECK: *** Dumping AST Record Layout
// CHECK: *** Dumping AST Record Layout
// CHECK: *** Dumping AST Record Layout
// CHECK-NEXT:    0 | struct AA
// CHECK-NEXT:    0 |   struct B8 (base)
// CHECK-NEXT:    0 |     char [5] c
// CHECK-NEXT:   13 |   struct B1 (base) (empty)
// CHECK-NEXT:    8 |   (AA vbtable pointer)
// CHECK-NEXT:   16 |   int a
// CHECK-NEXT:   20 |   struct B0 (virtual base) (empty)
// CHECK-NEXT:      | [sizeof=20, align=4
// CHECK-NEXT:      |  nvsize=20, nvalign=4]
// CHECK-X64: *** Dumping AST Record Layout
// CHECK-X64: *** Dumping AST Record Layout
// CHECK-X64: *** Dumping AST Record Layout
// CHECK-X64: *** Dumping AST Record Layout
// CHECK-X64-NEXT:    0 | struct AA
// CHECK-X64-NEXT:    0 |   struct B8 (base)
// CHECK-X64-NEXT:    0 |     char [5] c
// CHECK-X64-NEXT:   17 |   struct B1 (base) (empty)
// CHECK-X64-NEXT:    8 |   (AA vbtable pointer)
// CHECK-X64-NEXT:   20 |   int a
// CHECK-X64-NEXT:   24 |   struct B0 (virtual base) (empty)
// CHECK-X64-NEXT:      | [sizeof=24, align=8
// CHECK-X64-NEXT:      |  nvsize=24, nvalign=8]

struct AB : B8, B1, virtual B0 {
	short a;
	AB() : a(0x000000AB) { printf("AB = %p\n", this); }
};

// CHECK: *** Dumping AST Record Layout
// CHECK-NEXT:    0 | struct AB
// CHECK-NEXT:    0 |   struct B8 (base)
// CHECK-NEXT:    0 |     char [5] c
// CHECK-NEXT:   13 |   struct B1 (base) (empty)
// CHECK-NEXT:    8 |   (AB vbtable pointer)
// CHECK-NEXT:   14 |   short a
// CHECK-NEXT:   16 |   struct B0 (virtual base) (empty)
// CHECK-NEXT:      | [sizeof=16, align=4
// CHECK-NEXT:      |  nvsize=16, nvalign=4]
// CHECK-X64: *** Dumping AST Record Layout
// CHECK-X64-NEXT:    0 | struct AB
// CHECK-X64-NEXT:    0 |   struct B8 (base)
// CHECK-X64-NEXT:    0 |     char [5] c
// CHECK-X64-NEXT:   17 |   struct B1 (base) (empty)
// CHECK-X64-NEXT:    8 |   (AB vbtable pointer)
// CHECK-X64-NEXT:   18 |   short a
// CHECK-X64-NEXT:   24 |   struct B0 (virtual base) (empty)
// CHECK-X64-NEXT:      | [sizeof=24, align=8
// CHECK-X64-NEXT:      |  nvsize=24, nvalign=8]

struct AC : B8, B1, virtual B0 {
	char a;
	AC() : a(0x000000AC) { printf("AC = %p\n", this); }
};

// CHECK: *** Dumping AST Record Layout
// CHECK-NEXT:    0 | struct AC
// CHECK-NEXT:    0 |   struct B8 (base)
// CHECK-NEXT:    0 |     char [5] c
// CHECK-NEXT:   12 |   struct B1 (base) (empty)
// CHECK-NEXT:    8 |   (AC vbtable pointer)
// CHECK-NEXT:   12 |   char a
// CHECK-NEXT:   16 |   struct B0 (virtual base) (empty)
// CHECK-NEXT:      | [sizeof=16, align=4
// CHECK-NEXT:      |  nvsize=16, nvalign=4]
// CHECK-X64: *** Dumping AST Record Layout
// CHECK-X64-NEXT:    0 | struct AC
// CHECK-X64-NEXT:    0 |   struct B8 (base)
// CHECK-X64-NEXT:    0 |     char [5] c
// CHECK-X64-NEXT:   16 |   struct B1 (base) (empty)
// CHECK-X64-NEXT:    8 |   (AC vbtable pointer)
// CHECK-X64-NEXT:   16 |   char a
// CHECK-X64-NEXT:   24 |   struct B0 (virtual base) (empty)
// CHECK-X64-NEXT:      | [sizeof=24, align=8
// CHECK-X64-NEXT:      |  nvsize=24, nvalign=8]

struct AD : B8, B1, virtual B0 {
	AD() { printf("AD = %p\n", this); }
};

// CHECK: *** Dumping AST Record Layout
// CHECK-NEXT:    0 | struct AD
// CHECK-NEXT:    0 |   struct B8 (base)
// CHECK-NEXT:    0 |     char [5] c
// CHECK-NEXT:   12 |   struct B1 (base) (empty)
// CHECK-NEXT:    8 |   (AD vbtable pointer)
// CHECK-NEXT:   12 |   struct B0 (virtual base) (empty)
// CHECK-NEXT:      | [sizeof=12, align=4
// CHECK-NEXT:      |  nvsize=12, nvalign=4]
// CHECK-X64: *** Dumping AST Record Layout
// CHECK-X64-NEXT:    0 | struct AD
// CHECK-X64-NEXT:    0 |   struct B8 (base)
// CHECK-X64-NEXT:    0 |     char [5] c
// CHECK-X64-NEXT:   16 |   struct B1 (base) (empty)
// CHECK-X64-NEXT:    8 |   (AD vbtable pointer)
// CHECK-X64-NEXT:   16 |   struct B0 (virtual base) (empty)
// CHECK-X64-NEXT:      | [sizeof=16, align=8
// CHECK-X64-NEXT:      |  nvsize=16, nvalign=8]

struct AA1 : B9, B1, virtual B0 {
	int a;
	AA1() : a(0x00000AA1) { printf("AA1 = %p\n", this); }
};

// CHECK: *** Dumping AST Record Layout
// CHECK: *** Dumping AST Record Layout
// CHECK-NEXT:    0 | struct AA1
// CHECK-NEXT:    0 |   struct B9 (base)
// CHECK-NEXT:    0 |     char [6] c
// CHECK-NEXT:   14 |   struct B1 (base) (empty)
// CHECK-NEXT:    8 |   (AA1 vbtable pointer)
// CHECK-NEXT:   16 |   int a
// CHECK-NEXT:   20 |   struct B0 (virtual base) (empty)
// CHECK-NEXT:      | [sizeof=20, align=4
// CHECK-NEXT:      |  nvsize=20, nvalign=4]
// CHECK-X64: *** Dumping AST Record Layout
// CHECK-X64: *** Dumping AST Record Layout
// CHECK-X64-NEXT:    0 | struct AA1
// CHECK-X64-NEXT:    0 |   struct B9 (base)
// CHECK-X64-NEXT:    0 |     char [6] c
// CHECK-X64-NEXT:   18 |   struct B1 (base) (empty)
// CHECK-X64-NEXT:    8 |   (AA1 vbtable pointer)
// CHECK-X64-NEXT:   20 |   int a
// CHECK-X64-NEXT:   24 |   struct B0 (virtual base) (empty)
// CHECK-X64-NEXT:      | [sizeof=24, align=8
// CHECK-X64-NEXT:      |  nvsize=24, nvalign=8]

struct AB1 : B9, B1, virtual B0 {
	short a;
	AB1() : a(0x00000AB1) { printf("AB1 = %p\n", this); }
};

// CHECK: *** Dumping AST Record Layout
// CHECK-NEXT:    0 | struct AB1
// CHECK-NEXT:    0 |   struct B9 (base)
// CHECK-NEXT:    0 |     char [6] c
// CHECK-NEXT:   12 |   struct B1 (base) (empty)
// CHECK-NEXT:    8 |   (AB1 vbtable pointer)
// CHECK-NEXT:   12 |   short a
// CHECK-NEXT:   16 |   struct B0 (virtual base) (empty)
// CHECK-NEXT:      | [sizeof=16, align=4
// CHECK-NEXT:      |  nvsize=16, nvalign=4]
// CHECK-X64: *** Dumping AST Record Layout
// CHECK-X64-NEXT:    0 | struct AB1
// CHECK-X64-NEXT:    0 |   struct B9 (base)
// CHECK-X64-NEXT:    0 |     char [6] c
// CHECK-X64-NEXT:   16 |   struct B1 (base) (empty)
// CHECK-X64-NEXT:    8 |   (AB1 vbtable pointer)
// CHECK-X64-NEXT:   16 |   short a
// CHECK-X64-NEXT:   24 |   struct B0 (virtual base) (empty)
// CHECK-X64-NEXT:      | [sizeof=24, align=8
// CHECK-X64-NEXT:      |  nvsize=24, nvalign=8]

struct AC1 : B9, B1, virtual B0 {
	char a;
	AC1() : a(0x000000C1) { printf("AC1 = %p\n", this); }
};

// CHECK: *** Dumping AST Record Layout
// CHECK-NEXT:    0 | struct AC1
// CHECK-NEXT:    0 |   struct B9 (base)
// CHECK-NEXT:    0 |     char [6] c
// CHECK-NEXT:   12 |   struct B1 (base) (empty)
// CHECK-NEXT:    8 |   (AC1 vbtable pointer)
// CHECK-NEXT:   12 |   char a
// CHECK-NEXT:   16 |   struct B0 (virtual base) (empty)
// CHECK-NEXT:      | [sizeof=16, align=4
// CHECK-NEXT:      |  nvsize=16, nvalign=4]
// CHECK-X64: *** Dumping AST Record Layout
// CHECK-X64-NEXT:    0 | struct AC1
// CHECK-X64-NEXT:    0 |   struct B9 (base)
// CHECK-X64-NEXT:    0 |     char [6] c
// CHECK-X64-NEXT:   16 |   struct B1 (base) (empty)
// CHECK-X64-NEXT:    8 |   (AC1 vbtable pointer)
// CHECK-X64-NEXT:   16 |   char a
// CHECK-X64-NEXT:   24 |   struct B0 (virtual base) (empty)
// CHECK-X64-NEXT:      | [sizeof=24, align=8
// CHECK-X64-NEXT:      |  nvsize=24, nvalign=8]

struct AD1 : B9, B1, virtual B0 {
	AD1() { printf("AD1 = %p\n", this); }
};

// CHECK: *** Dumping AST Record Layout
// CHECK-NEXT:    0 | struct AD1
// CHECK-NEXT:    0 |   struct B9 (base)
// CHECK-NEXT:    0 |     char [6] c
// CHECK-NEXT:   12 |   struct B1 (base) (empty)
// CHECK-NEXT:    8 |   (AD1 vbtable pointer)
// CHECK-NEXT:   12 |   struct B0 (virtual base) (empty)
// CHECK-NEXT:      | [sizeof=12, align=4
// CHECK-NEXT:      |  nvsize=12, nvalign=4]
// CHECK-X64: *** Dumping AST Record Layout
// CHECK-X64-NEXT:    0 | struct AD1
// CHECK-X64-NEXT:    0 |   struct B9 (base)
// CHECK-X64-NEXT:    0 |     char [6] c
// CHECK-X64-NEXT:   16 |   struct B1 (base) (empty)
// CHECK-X64-NEXT:    8 |   (AD1 vbtable pointer)
// CHECK-X64-NEXT:   16 |   struct B0 (virtual base) (empty)
// CHECK-X64-NEXT:      | [sizeof=16, align=8
// CHECK-X64-NEXT:      |  nvsize=16, nvalign=8]

struct AA2 : B10, B1, virtual B0 {
	int a;
	AA2() : a(0x00000AA2) { printf("AA2 = %p\n", this); }
};

// CHECK: *** Dumping AST Record Layout
// CHECK: *** Dumping AST Record Layout
// CHECK-NEXT:    0 | struct AA2
// CHECK-NEXT:    0 |   struct B10 (base)
// CHECK-NEXT:    0 |     char [7] c
// CHECK-NEXT:   15 |   struct B1 (base) (empty)
// CHECK-NEXT:    8 |   (AA2 vbtable pointer)
// CHECK-NEXT:   16 |   int a
// CHECK-NEXT:   20 |   struct B0 (virtual base) (empty)
// CHECK-NEXT:      | [sizeof=20, align=4
// CHECK-NEXT:      |  nvsize=20, nvalign=4]
// CHECK-X64: *** Dumping AST Record Layout
// CHECK-X64: *** Dumping AST Record Layout
// CHECK-X64-NEXT:    0 | struct AA2
// CHECK-X64-NEXT:    0 |   struct B10 (base)
// CHECK-X64-NEXT:    0 |     char [7] c
// CHECK-X64-NEXT:   19 |   struct B1 (base) (empty)
// CHECK-X64-NEXT:    8 |   (AA2 vbtable pointer)
// CHECK-X64-NEXT:   20 |   int a
// CHECK-X64-NEXT:   24 |   struct B0 (virtual base) (empty)
// CHECK-X64-NEXT:      | [sizeof=24, align=8
// CHECK-X64-NEXT:      |  nvsize=24, nvalign=8]

struct AB2 : B10, B1, virtual B0 {
	short a;
	AB2() : a(0x00000AB2) { printf("AB2 = %p\n", this); }
};

// CHECK: *** Dumping AST Record Layout
// CHECK-NEXT:    0 | struct AB2
// CHECK-NEXT:    0 |   struct B10 (base)
// CHECK-NEXT:    0 |     char [7] c
// CHECK-NEXT:   13 |   struct B1 (base) (empty)
// CHECK-NEXT:    8 |   (AB2 vbtable pointer)
// CHECK-NEXT:   14 |   short a
// CHECK-NEXT:   16 |   struct B0 (virtual base) (empty)
// CHECK-NEXT:      | [sizeof=16, align=4
// CHECK-NEXT:      |  nvsize=16, nvalign=4]
// CHECK-X64: *** Dumping AST Record Layout
// CHECK-X64-NEXT:    0 | struct AB2
// CHECK-X64-NEXT:    0 |   struct B10 (base)
// CHECK-X64-NEXT:    0 |     char [7] c
// CHECK-X64-NEXT:   17 |   struct B1 (base) (empty)
// CHECK-X64-NEXT:    8 |   (AB2 vbtable pointer)
// CHECK-X64-NEXT:   18 |   short a
// CHECK-X64-NEXT:   24 |   struct B0 (virtual base) (empty)
// CHECK-X64-NEXT:      | [sizeof=24, align=8
// CHECK-X64-NEXT:      |  nvsize=24, nvalign=8]

struct AC2 : B10, B1, virtual B0 {
	char a;
	AC2() : a(0x000000C2) { printf("AC2 = %p\n", this); }
};

// CHECK: *** Dumping AST Record Layout
// CHECK-NEXT:    0 | struct AC2
// CHECK-NEXT:    0 |   struct B10 (base)
// CHECK-NEXT:    0 |     char [7] c
// CHECK-NEXT:   12 |   struct B1 (base) (empty)
// CHECK-NEXT:    8 |   (AC2 vbtable pointer)
// CHECK-NEXT:   12 |   char a
// CHECK-NEXT:   16 |   struct B0 (virtual base) (empty)
// CHECK-NEXT:      | [sizeof=16, align=4
// CHECK-NEXT:      |  nvsize=16, nvalign=4]
// CHECK-X64: *** Dumping AST Record Layout
// CHECK-X64-NEXT:    0 | struct AC2
// CHECK-X64-NEXT:    0 |   struct B10 (base)
// CHECK-X64-NEXT:    0 |     char [7] c
// CHECK-X64-NEXT:   16 |   struct B1 (base) (empty)
// CHECK-X64-NEXT:    8 |   (AC2 vbtable pointer)
// CHECK-X64-NEXT:   16 |   char a
// CHECK-X64-NEXT:   24 |   struct B0 (virtual base) (empty)
// CHECK-X64-NEXT:      | [sizeof=24, align=8
// CHECK-X64-NEXT:      |  nvsize=24, nvalign=8]

struct AD2 : B10, B1, virtual B0 {
	AD2() { printf("AD2 = %p\n", this); }
};

// CHECK: *** Dumping AST Record Layout
// CHECK-NEXT:    0 | struct AD2
// CHECK-NEXT:    0 |   struct B10 (base)
// CHECK-NEXT:    0 |     char [7] c
// CHECK-NEXT:   12 |   struct B1 (base) (empty)
// CHECK-NEXT:    8 |   (AD2 vbtable pointer)
// CHECK-NEXT:   12 |   struct B0 (virtual base) (empty)
// CHECK-NEXT:      | [sizeof=12, align=4
// CHECK-NEXT:      |  nvsize=12, nvalign=4]
// CHECK-X64: *** Dumping AST Record Layout
// CHECK-X64-NEXT:    0 | struct AD2
// CHECK-X64-NEXT:    0 |   struct B10 (base)
// CHECK-X64-NEXT:    0 |     char [7] c
// CHECK-X64-NEXT:   16 |   struct B1 (base) (empty)
// CHECK-X64-NEXT:    8 |   (AD2 vbtable pointer)
// CHECK-X64-NEXT:   16 |   struct B0 (virtual base) (empty)
// CHECK-X64-NEXT:      | [sizeof=16, align=8
// CHECK-X64-NEXT:      |  nvsize=16, nvalign=8]

struct AA3 : B11, B1, virtual B0 {
	int a;
	AA3() : a(0x00000AA3) { printf("AA3 = %p\n", this); }
};

// CHECK: *** Dumping AST Record Layout
// CHECK: *** Dumping AST Record Layout
// CHECK-NEXT:    0 | struct AA3
// CHECK-NEXT:    0 |   struct B11 (base)
// CHECK-NEXT:    0 |     char [8] c
// CHECK-NEXT:   12 |   struct B1 (base) (empty)
// CHECK-NEXT:    8 |   (AA3 vbtable pointer)
// CHECK-NEXT:   12 |   int a
// CHECK-NEXT:   16 |   struct B0 (virtual base) (empty)
// CHECK-NEXT:      | [sizeof=16, align=4
// CHECK-NEXT:      |  nvsize=16, nvalign=4]
// CHECK-X64: *** Dumping AST Record Layout
// CHECK-X64: *** Dumping AST Record Layout
// CHECK-X64-NEXT:    0 | struct AA3
// CHECK-X64-NEXT:    0 |   struct B11 (base)
// CHECK-X64-NEXT:    0 |     char [8] c
// CHECK-X64-NEXT:   16 |   struct B1 (base) (empty)
// CHECK-X64-NEXT:    8 |   (AA3 vbtable pointer)
// CHECK-X64-NEXT:   16 |   int a
// CHECK-X64-NEXT:   24 |   struct B0 (virtual base) (empty)
// CHECK-X64-NEXT:      | [sizeof=24, align=8
// CHECK-X64-NEXT:      |  nvsize=24, nvalign=8]

struct AB3 : B11, B1, virtual B0 {
	short a;
	AB3() : a(0x00000AB3) { printf("AB3 = %p\n", this); }
};

// CHECK: *** Dumping AST Record Layout
// CHECK-NEXT:    0 | struct AB3
// CHECK-NEXT:    0 |   struct B11 (base)
// CHECK-NEXT:    0 |     char [8] c
// CHECK-NEXT:   12 |   struct B1 (base) (empty)
// CHECK-NEXT:    8 |   (AB3 vbtable pointer)
// CHECK-NEXT:   12 |   short a
// CHECK-NEXT:   16 |   struct B0 (virtual base) (empty)
// CHECK-NEXT:      | [sizeof=16, align=4
// CHECK-NEXT:      |  nvsize=16, nvalign=4]
// CHECK-X64: *** Dumping AST Record Layout
// CHECK-X64-NEXT:    0 | struct AB3
// CHECK-X64-NEXT:    0 |   struct B11 (base)
// CHECK-X64-NEXT:    0 |     char [8] c
// CHECK-X64-NEXT:   16 |   struct B1 (base) (empty)
// CHECK-X64-NEXT:    8 |   (AB3 vbtable pointer)
// CHECK-X64-NEXT:   16 |   short a
// CHECK-X64-NEXT:   24 |   struct B0 (virtual base) (empty)
// CHECK-X64-NEXT:      | [sizeof=24, align=8
// CHECK-X64-NEXT:      |  nvsize=24, nvalign=8]

struct AC3 : B11, B1, virtual B0 {
	char a;
	AC3() : a(0x000000C3) { printf("AC3 = %p\n", this); }
};

// CHECK: *** Dumping AST Record Layout
// CHECK-NEXT:    0 | struct AC3
// CHECK-NEXT:    0 |   struct B11 (base)
// CHECK-NEXT:    0 |     char [8] c
// CHECK-NEXT:   12 |   struct B1 (base) (empty)
// CHECK-NEXT:    8 |   (AC3 vbtable pointer)
// CHECK-NEXT:   12 |   char a
// CHECK-NEXT:   16 |   struct B0 (virtual base) (empty)
// CHECK-NEXT:      | [sizeof=16, align=4
// CHECK-NEXT:      |  nvsize=16, nvalign=4]
// CHECK-X64: *** Dumping AST Record Layout
// CHECK-X64-NEXT:    0 | struct AC3
// CHECK-X64-NEXT:    0 |   struct B11 (base)
// CHECK-X64-NEXT:    0 |     char [8] c
// CHECK-X64-NEXT:   16 |   struct B1 (base) (empty)
// CHECK-X64-NEXT:    8 |   (AC3 vbtable pointer)
// CHECK-X64-NEXT:   16 |   char a
// CHECK-X64-NEXT:   24 |   struct B0 (virtual base) (empty)
// CHECK-X64-NEXT:      | [sizeof=24, align=8
// CHECK-X64-NEXT:      |  nvsize=24, nvalign=8]

struct AD3 : B11, B1, virtual B0 {
	AD3() { printf("AD3 = %p\n", this); }
};

// CHECK: *** Dumping AST Record Layout
// CHECK-NEXT:    0 | struct AD3
// CHECK-NEXT:    0 |   struct B11 (base)
// CHECK-NEXT:    0 |     char [8] c
// CHECK-NEXT:   12 |   struct B1 (base) (empty)
// CHECK-NEXT:    8 |   (AD3 vbtable pointer)
// CHECK-NEXT:   12 |   struct B0 (virtual base) (empty)
// CHECK-NEXT:      | [sizeof=12, align=4
// CHECK-NEXT:      |  nvsize=12, nvalign=4]
// CHECK-X64: *** Dumping AST Record Layout
// CHECK-X64-NEXT:    0 | struct AD3
// CHECK-X64-NEXT:    0 |   struct B11 (base)
// CHECK-X64-NEXT:    0 |     char [8] c
// CHECK-X64-NEXT:   16 |   struct B1 (base) (empty)
// CHECK-X64-NEXT:    8 |   (AD3 vbtable pointer)
// CHECK-X64-NEXT:   16 |   struct B0 (virtual base) (empty)
// CHECK-X64-NEXT:      | [sizeof=16, align=8
// CHECK-X64-NEXT:      |  nvsize=16, nvalign=8]

struct B : B1, B2, virtual B0 {
	B() { printf("B = %p\n", this); }
};

// CHECK: *** Dumping AST Record Layout
// CHECK: *** Dumping AST Record Layout
// CHECK-NEXT:    0 | struct B
// CHECK-NEXT:    0 |   struct B1 (base) (empty)
// CHECK-NEXT:    8 |   struct B2 (base) (empty)
// CHECK-NEXT:    4 |   (B vbtable pointer)
// CHECK-NEXT:    8 |   struct B0 (virtual base) (empty)
// CHECK-NEXT:      | [sizeof=8, align=4
// CHECK-NEXT:      |  nvsize=8, nvalign=4]
// CHECK-X64: *** Dumping AST Record Layout
// CHECK-X64: *** Dumping AST Record Layout
// CHECK-X64-NEXT:    0 | struct B
// CHECK-X64-NEXT:    0 |   struct B1 (base) (empty)
// CHECK-X64-NEXT:   16 |   struct B2 (base) (empty)
// CHECK-X64-NEXT:    8 |   (B vbtable pointer)
// CHECK-X64-NEXT:   16 |   struct B0 (virtual base) (empty)
// CHECK-X64-NEXT:      | [sizeof=16, align=8
// CHECK-X64-NEXT:      |  nvsize=16, nvalign=8]

struct C : B1, B2, B3, virtual B0 {
	char a;
	C() : a(0x0000000C) { printf("C = %p\n", this); }
};

// CHECK: *** Dumping AST Record Layout
// CHECK: *** Dumping AST Record Layout
// CHECK-NEXT:    0 | struct C
// CHECK-NEXT:    0 |   struct B1 (base) (empty)
// CHECK-NEXT:    1 |   struct B2 (base) (empty)
// CHECK-NEXT:    8 |   struct B3 (base) (empty)
// CHECK-NEXT:    4 |   (C vbtable pointer)
// CHECK-NEXT:    8 |   char a
// CHECK-NEXT:   12 |   struct B0 (virtual base) (empty)
// CHECK-NEXT:      | [sizeof=12, align=4
// CHECK-NEXT:      |  nvsize=12, nvalign=4]
// CHECK-X64: *** Dumping AST Record Layout
// CHECK-X64: *** Dumping AST Record Layout
// CHECK-X64-NEXT:    0 | struct C
// CHECK-X64-NEXT:    0 |   struct B1 (base) (empty)
// CHECK-X64-NEXT:    1 |   struct B2 (base) (empty)
// CHECK-X64-NEXT:   16 |   struct B3 (base) (empty)
// CHECK-X64-NEXT:    8 |   (C vbtable pointer)
// CHECK-X64-NEXT:   16 |   char a
// CHECK-X64-NEXT:   24 |   struct B0 (virtual base) (empty)
// CHECK-X64-NEXT:      | [sizeof=24, align=8
// CHECK-X64-NEXT:      |  nvsize=24, nvalign=8]

struct D : B1, B2, B3, B4, B5, virtual B0 {
	int a;
	D() : a(0x0000000D) { printf("D = %p\n", this); }
};

// CHECK: *** Dumping AST Record Layout
// CHECK: *** Dumping AST Record Layout
// CHECK: *** Dumping AST Record Layout
// CHECK-NEXT:    0 | struct D
// CHECK-NEXT:    0 |   struct B1 (base) (empty)
// CHECK-NEXT:    1 |   struct B2 (base) (empty)
// CHECK-NEXT:    2 |   struct B3 (base) (empty)
// CHECK-NEXT:    3 |   struct B4 (base) (empty)
// CHECK-NEXT:    8 |   struct B5 (base) (empty)
// CHECK-NEXT:    4 |   (D vbtable pointer)
// CHECK-NEXT:    8 |   int a
// CHECK-NEXT:   12 |   struct B0 (virtual base) (empty)
// CHECK-NEXT:      | [sizeof=12, align=4
// CHECK-NEXT:      |  nvsize=12, nvalign=4]
// CHECK-X64: *** Dumping AST Record Layout
// CHECK-X64: *** Dumping AST Record Layout
// CHECK-X64: *** Dumping AST Record Layout
// CHECK-X64-NEXT:    0 | struct D
// CHECK-X64-NEXT:    0 |   struct B1 (base) (empty)
// CHECK-X64-NEXT:    1 |   struct B2 (base) (empty)
// CHECK-X64-NEXT:    2 |   struct B3 (base) (empty)
// CHECK-X64-NEXT:    3 |   struct B4 (base) (empty)
// CHECK-X64-NEXT:   16 |   struct B5 (base) (empty)
// CHECK-X64-NEXT:    8 |   (D vbtable pointer)
// CHECK-X64-NEXT:   16 |   int a
// CHECK-X64-NEXT:   24 |   struct B0 (virtual base) (empty)
// CHECK-X64-NEXT:      | [sizeof=24, align=8
// CHECK-X64-NEXT:      |  nvsize=24, nvalign=8]

struct E : B1, B6, B3, B4, B5, virtual B0 {
	int a;
	E() : a(0x0000000E) { printf("E = %p\n", this); }
};

// CHECK: *** Dumping AST Record Layout
// CHECK: *** Dumping AST Record Layout
// CHECK-NEXT:    0 | struct E
// CHECK-NEXT:    0 |   struct B1 (base) (empty)
// CHECK-NEXT:    2 |   struct B6 (base) (empty)
// CHECK-NEXT:    3 |   struct B3 (base) (empty)
// CHECK-NEXT:    4 |   struct B4 (base) (empty)
// CHECK-NEXT:   13 |   struct B5 (base) (empty)
// CHECK-NEXT:    8 |   (E vbtable pointer)
// CHECK-NEXT:   16 |   int a
// CHECK-NEXT:   20 |   struct B0 (virtual base) (empty)
// CHECK-NEXT:      | [sizeof=20, align=4
// CHECK-NEXT:      |  nvsize=20, nvalign=4]
// CHECK-X64: *** Dumping AST Record Layout
// CHECK-X64: *** Dumping AST Record Layout
// CHECK-X64-NEXT:    0 | struct E
// CHECK-X64-NEXT:    0 |   struct B1 (base) (empty)
// CHECK-X64-NEXT:    2 |   struct B6 (base) (empty)
// CHECK-X64-NEXT:    3 |   struct B3 (base) (empty)
// CHECK-X64-NEXT:    4 |   struct B4 (base) (empty)
// CHECK-X64-NEXT:   17 |   struct B5 (base) (empty)
// CHECK-X64-NEXT:    8 |   (E vbtable pointer)
// CHECK-X64-NEXT:   20 |   int a
// CHECK-X64-NEXT:   24 |   struct B0 (virtual base) (empty)
// CHECK-X64-NEXT:      | [sizeof=24, align=8
// CHECK-X64-NEXT:      |  nvsize=24, nvalign=8]

struct F : B1, B6, B4, B8, B5, virtual B0 {
	int a;
	F() : a(0x0000000F) { printf("&a = %p\n", &a); printf("F = %p\n", this); }
};

// CHECK: *** Dumping AST Record Layout
// CHECK-NEXT:    0 | struct F
// CHECK-NEXT:    0 |   struct B1 (base) (empty)
// CHECK-NEXT:    2 |   struct B6 (base) (empty)
// CHECK-NEXT:    3 |   struct B4 (base) (empty)
// CHECK-NEXT:    3 |   struct B8 (base)
// CHECK-NEXT:    3 |     char [5] c
// CHECK-NEXT:   12 |   struct B5 (base) (empty)
// CHECK-NEXT:    8 |   (F vbtable pointer)
// CHECK-NEXT:   12 |   int a
// CHECK-NEXT:   16 |   struct B0 (virtual base) (empty)
// CHECK-NEXT:      | [sizeof=16, align=4
// CHECK-NEXT:      |  nvsize=16, nvalign=4]
// CHECK-X64: *** Dumping AST Record Layout
// CHECK-X64-NEXT:    0 | struct F
// CHECK-X64-NEXT:    0 |   struct B1 (base) (empty)
// CHECK-X64-NEXT:    2 |   struct B6 (base) (empty)
// CHECK-X64-NEXT:    3 |   struct B4 (base) (empty)
// CHECK-X64-NEXT:    3 |   struct B8 (base)
// CHECK-X64-NEXT:    3 |     char [5] c
// CHECK-X64-NEXT:   16 |   struct B5 (base) (empty)
// CHECK-X64-NEXT:    8 |   (F vbtable pointer)
// CHECK-X64-NEXT:   16 |   int a
// CHECK-X64-NEXT:   24 |   struct B0 (virtual base) (empty)
// CHECK-X64-NEXT:      | [sizeof=24, align=8
// CHECK-X64-NEXT:      |  nvsize=24, nvalign=8]

struct G : B8, B1, virtual B0 {
	int a;
	__declspec(align(16)) int a1;
	G() : a(0x00000010), a1(0xf0000010) { printf("G = %p\n", this); }
};

// CHECK: *** Dumping AST Record Layout
// CHECK-NEXT:    0 | struct G
// CHECK-NEXT:    0 |   struct B8 (base)
// CHECK-NEXT:    0 |     char [5] c
// CHECK-NEXT:   21 |   struct B1 (base) (empty)
// CHECK-NEXT:    8 |   (G vbtable pointer)
// CHECK-NEXT:   24 |   int a
// CHECK-NEXT:   32 |   int a1
// CHECK-NEXT:   48 |   struct B0 (virtual base) (empty)
// CHECK-NEXT:      | [sizeof=48, align=16
// CHECK-NEXT:      |  nvsize=48, nvalign=16]
// CHECK-X64: *** Dumping AST Record Layout
// CHECK-X64-NEXT:    0 | struct G
// CHECK-X64-NEXT:    0 |   struct B8 (base)
// CHECK-X64-NEXT:    0 |     char [5] c
// CHECK-X64-NEXT:   21 |   struct B1 (base) (empty)
// CHECK-X64-NEXT:    8 |   (G vbtable pointer)
// CHECK-X64-NEXT:   24 |   int a
// CHECK-X64-NEXT:   32 |   int a1
// CHECK-X64-NEXT:   48 |   struct B0 (virtual base) (empty)
// CHECK-X64-NEXT:      | [sizeof=48, align=16
// CHECK-X64-NEXT:      |  nvsize=48, nvalign=16]

struct AX : B1X, B2X, B3X, B4X, virtual B0X {
	int a;
	AX() : a(0x0000000A) { printf(" A = %p\n", this); }
};

// CHECK: *** Dumping AST Record Layout
// CHECK: *** Dumping AST Record Layout
// CHECK: *** Dumping AST Record Layout
// CHECK: *** Dumping AST Record Layout
// CHECK: *** Dumping AST Record Layout
// CHECK: *** Dumping AST Record Layout
// CHECK-NEXT:    0 | struct AX
// CHECK-NEXT:    0 |   struct B1X (base) (empty)
// CHECK-NEXT:   16 |   struct B2X (base) (empty)
// CHECK-NEXT:   18 |   struct B3X (base) (empty)
// CHECK-NEXT:   35 |   struct B4X (base) (empty)
// CHECK-NEXT:   20 |   (AX vbtable pointer)
// CHECK-NEXT:   36 |   int a
// CHECK-NEXT:   48 |   struct B0X (virtual base) (empty)
// CHECK-NEXT:      | [sizeof=48, align=16
// CHECK-NEXT:      |  nvsize=48, nvalign=16]
// CHECK-X64: *** Dumping AST Record Layout
// CHECK-X64: *** Dumping AST Record Layout
// CHECK-X64: *** Dumping AST Record Layout
// CHECK-X64: *** Dumping AST Record Layout
// CHECK-X64: *** Dumping AST Record Layout
// CHECK-X64: *** Dumping AST Record Layout
// CHECK-X64-NEXT:    0 | struct AX
// CHECK-X64-NEXT:    0 |   struct B1X (base) (empty)
// CHECK-X64-NEXT:   16 |   struct B2X (base) (empty)
// CHECK-X64-NEXT:   18 |   struct B3X (base) (empty)
// CHECK-X64-NEXT:   35 |   struct B4X (base) (empty)
// CHECK-X64-NEXT:   24 |   (AX vbtable pointer)
// CHECK-X64-NEXT:   36 |   int a
// CHECK-X64-NEXT:   48 |   struct B0X (virtual base) (empty)
// CHECK-X64-NEXT:      | [sizeof=48, align=16
// CHECK-X64-NEXT:      |  nvsize=48, nvalign=16]

struct BX : B2X, B1X, B3X, B4X, virtual B0X {
	int a;
	BX() : a(0x0000000B) { printf(" B = %p\n", this); }
};

// CHECK: *** Dumping AST Record Layout
// CHECK-NEXT:    0 | struct BX
// CHECK-NEXT:    0 |   struct B2X (base) (empty)
// CHECK-NEXT:    1 |   struct B1X (base) (empty)
// CHECK-NEXT:    2 |   struct B3X (base) (empty)
// CHECK-NEXT:   19 |   struct B4X (base) (empty)
// CHECK-NEXT:    4 |   (BX vbtable pointer)
// CHECK-NEXT:   20 |   int a
// CHECK-NEXT:   32 |   struct B0X (virtual base) (empty)
// CHECK-NEXT:      | [sizeof=32, align=16
// CHECK-NEXT:      |  nvsize=32, nvalign=16]
// CHECK-X64: *** Dumping AST Record Layout
// CHECK-X64-NEXT:    0 | struct BX
// CHECK-X64-NEXT:    0 |   struct B2X (base) (empty)
// CHECK-X64-NEXT:    1 |   struct B1X (base) (empty)
// CHECK-X64-NEXT:    2 |   struct B3X (base) (empty)
// CHECK-X64-NEXT:   19 |   struct B4X (base) (empty)
// CHECK-X64-NEXT:    8 |   (BX vbtable pointer)
// CHECK-X64-NEXT:   20 |   int a
// CHECK-X64-NEXT:   32 |   struct B0X (virtual base) (empty)
// CHECK-X64-NEXT:      | [sizeof=32, align=16
// CHECK-X64-NEXT:      |  nvsize=32, nvalign=16]

struct CX : B1X, B3X, B2X, virtual B0X {
	int a;
	CX() : a(0x0000000C) { printf(" C = %p\n", this); }
};

// CHECK: *** Dumping AST Record Layout
// CHECK-NEXT:    0 | struct CX
// CHECK-NEXT:    0 |   struct B1X (base) (empty)
// CHECK-NEXT:    2 |   struct B3X (base) (empty)
// CHECK-NEXT:   32 |   struct B2X (base) (empty)
// CHECK-NEXT:   16 |   (CX vbtable pointer)
// CHECK-NEXT:   32 |   int a
// CHECK-NEXT:   48 |   struct B0X (virtual base) (empty)
// CHECK-NEXT:      | [sizeof=48, align=16
// CHECK-NEXT:      |  nvsize=48, nvalign=16]
// CHECK-X64: *** Dumping AST Record Layout
// CHECK-X64-NEXT:    0 | struct CX
// CHECK-X64-NEXT:    0 |   struct B1X (base) (empty)
// CHECK-X64-NEXT:    2 |   struct B3X (base) (empty)
// CHECK-X64-NEXT:   32 |   struct B2X (base) (empty)
// CHECK-X64-NEXT:   16 |   (CX vbtable pointer)
// CHECK-X64-NEXT:   32 |   int a
// CHECK-X64-NEXT:   48 |   struct B0X (virtual base) (empty)
// CHECK-X64-NEXT:      | [sizeof=48, align=16
// CHECK-X64-NEXT:      |  nvsize=48, nvalign=16]

struct DX : B8X, B1X, virtual B0X {
	int a;
	DX() : a(0x0000000D) { printf(" D = %p\n", this); }
};

// CHECK: *** Dumping AST Record Layout
// CHECK: *** Dumping AST Record Layout
// CHECK-NEXT:    0 | struct DX
// CHECK-NEXT:    0 |   struct B8X (base)
// CHECK-NEXT:    0 |     short a
// CHECK-NEXT:   10 |   struct B1X (base) (empty)
// CHECK-NEXT:    4 |   (DX vbtable pointer)
// CHECK-NEXT:   12 |   int a
// CHECK-NEXT:   16 |   struct B0X (virtual base) (empty)
// CHECK-NEXT:      | [sizeof=16, align=4
// CHECK-NEXT:      |  nvsize=16, nvalign=4]
// CHECK-X64: *** Dumping AST Record Layout
// CHECK-X64: *** Dumping AST Record Layout
// CHECK-X64-NEXT:    0 | struct DX
// CHECK-X64-NEXT:    0 |   struct B8X (base)
// CHECK-X64-NEXT:    0 |     short a
// CHECK-X64-NEXT:   18 |   struct B1X (base) (empty)
// CHECK-X64-NEXT:    8 |   (DX vbtable pointer)
// CHECK-X64-NEXT:   20 |   int a
// CHECK-X64-NEXT:   24 |   struct B0X (virtual base) (empty)
// CHECK-X64-NEXT:      | [sizeof=24, align=8
// CHECK-X64-NEXT:      |  nvsize=24, nvalign=8]


struct C0 {};
struct C1 : public C0 { int C1F0; };
struct C2 : public C1, public C0 {};

// CHECK: *** Dumping AST Record Layout
// CHECK: *** Dumping AST Record Layout
// CHECK: *** Dumping AST Record Layout
// CHECK-NEXT:    0 | struct C2
// CHECK-NEXT:    0 |   struct C1 (base)
// CHECK-NEXT:    0 |     struct C0 (base) (empty)
// CHECK-NEXT:    0 |     int C1F0
// CHECK-NEXT:    5 |   struct C0 (base) (empty)
// CHECK-NEXT:      | [sizeof=8, align=4
// CHECK-NEXT:      |  nvsize=8, nvalign=4]
// CHECK-X64: *** Dumping AST Record Layout
// CHECK-X64: *** Dumping AST Record Layout
// CHECK-X64: *** Dumping AST Record Layout
// CHECK-X64-NEXT:    0 | struct C2
// CHECK-X64-NEXT:    0 |   struct C1 (base)
// CHECK-X64-NEXT:    0 |     struct C0 (base) (empty)
// CHECK-X64-NEXT:    0 |     int C1F0
// CHECK-X64-NEXT:    5 |   struct C0 (base) (empty)
// CHECK-X64-NEXT:      | [sizeof=8, align=4
// CHECK-X64-NEXT:      |  nvsize=8, nvalign=4]

struct JA { char a; };
struct JB {
  char a;
  virtual void f() {}
};
struct JC { char a; };
struct JD : JA, JB, virtual JC {};

// CHECK: *** Dumping AST Record Layout
// CHECK: *** Dumping AST Record Layout
// CHECK: *** Dumping AST Record Layout
// CHECK: *** Dumping AST Record Layout
// CHECK-NEXT:    0 | struct JD
// CHECK-NEXT:    0 |   struct JB (primary base)
// CHECK-NEXT:    0 |     (JB vftable pointer)
// CHECK-NEXT:    4 |     char a
// CHECK-NEXT:   12 |   struct JA (base)
// CHECK-NEXT:   12 |     char a
// CHECK-NEXT:    8 |   (JD vbtable pointer)
// CHECK-NEXT:   16 |   struct JC (virtual base)
// CHECK-NEXT:   16 |     char a
// CHECK-NEXT:      | [sizeof=17, align=4
// CHECK-NEXT:      |  nvsize=16, nvalign=4]
// CHECK-X64: *** Dumping AST Record Layout
// CHECK-X64: *** Dumping AST Record Layout
// CHECK-X64: *** Dumping AST Record Layout
// CHECK-X64: *** Dumping AST Record Layout
// CHECK-X64-NEXT:    0 | struct JD
// CHECK-X64-NEXT:    0 |   struct JB (primary base)
// CHECK-X64-NEXT:    0 |     (JB vftable pointer)
// CHECK-X64-NEXT:    8 |     char a
// CHECK-X64-NEXT:   24 |   struct JA (base)
// CHECK-X64-NEXT:   24 |     char a
// CHECK-X64-NEXT:   16 |   (JD vbtable pointer)
// CHECK-X64-NEXT:   32 |   struct JC (virtual base)
// CHECK-X64-NEXT:   32 |     char a
// CHECK-X64-NEXT:      | [sizeof=40, align=8
// CHECK-X64-NEXT:      |  nvsize=32, nvalign=8]

int a[
sizeof(AA)+
sizeof(AB)+
sizeof(AC)+
sizeof(AD)+
sizeof(AA1)+
sizeof(AB1)+
sizeof(AC1)+
sizeof(AD1)+
sizeof(AA2)+
sizeof(AB2)+
sizeof(AC2)+
sizeof(AD2)+
sizeof(AA3)+
sizeof(AB3)+
sizeof(AC3)+
sizeof(AD3)+
sizeof(B)+
sizeof(C)+
sizeof(D)+
sizeof(E)+
sizeof(F)+
sizeof(G)+
sizeof(AX)+
sizeof(BX)+
sizeof(CX)+
sizeof(DX)+
sizeof(C2)+
sizeof(JD)+
0];
