diff options
Diffstat (limited to 'clang/test/Layout/ms-x86-empty-nonvirtual-bases.cpp')
-rw-r--r-- | clang/test/Layout/ms-x86-empty-nonvirtual-bases.cpp | 176 |
1 files changed, 92 insertions, 84 deletions
diff --git a/clang/test/Layout/ms-x86-empty-nonvirtual-bases.cpp b/clang/test/Layout/ms-x86-empty-nonvirtual-bases.cpp index 01d10c9994f..dd1cbe739bd 100644 --- a/clang/test/Layout/ms-x86-empty-nonvirtual-bases.cpp +++ b/clang/test/Layout/ms-x86-empty-nonvirtual-bases.cpp @@ -23,11 +23,12 @@ struct A : B0 { }; // CHECK: *** Dumping AST Record Layout -// CHECK: 0 | struct A -// CHECK: 0 | struct B0 (base) (empty) -// CHECK: 0 | int a -// CHECK: | [sizeof=8, align=8 -// CHECK: | nvsize=8, nvalign=8] +// CHECK: *** Dumping AST Record Layout +// CHECK-NEXT: 0 | struct A +// CHECK-NEXT: 0 | struct B0 (base) (empty) +// CHECK-NEXT: 0 | int a +// CHECK-NEXT: | [sizeof=8, align=8 +// CHECK-NEXT: | nvsize=8, nvalign=8] struct B : B0 { B0 b0; @@ -36,14 +37,14 @@ struct B : B0 { }; // CHECK: *** Dumping AST Record Layout -// CHECK: 0 | struct B -// CHECK: 0 | struct B0 (base) (empty) -// CHECK: 0 | struct B0 b0 (empty) -// CHECK: | [sizeof=8, align=8 -// CHECK: | nvsize=0, nvalign=1] -// CHECK: 8 | int a -// CHECK: | [sizeof=16, align=8 -// CHECK: | nvsize=16, nvalign=8] +// CHECK-NEXT: 0 | struct B +// CHECK-NEXT: 0 | struct B0 (base) (empty) +// CHECK-NEXT: 0 | struct B0 b0 (empty) +// CHECK-NEXT: | [sizeof=8, align=8 +// CHECK-NEXT: | nvsize=0, nvalign=8] +// CHECK: 8 | int a +// CHECK-NEXT: | [sizeof=16, align=8 +// CHECK-NEXT: | nvsize=16, nvalign=8] struct C : B0, B1, B2, B3, B4 { int a; @@ -51,15 +52,19 @@ struct C : B0, B1, B2, B3, B4 { }; // CHECK: *** Dumping AST Record Layout -// CHECK: 0 | struct C -// CHECK: 0 | struct B0 (base) (empty) -// CHECK: 8 | struct B1 (base) (empty) -// CHECK: 16 | struct B2 (base) (empty) -// CHECK: 24 | struct B3 (base) (empty) -// CHECK: 32 | struct B4 (base) (empty) -// CHECK: 32 | int a -// CHECK: | [sizeof=40, align=8 -// CHECK: | nvsize=40, nvalign=8] +// CHECK: *** Dumping AST Record Layout +// CHECK: *** Dumping AST Record Layout +// CHECK: *** Dumping AST Record Layout +// CHECK: *** Dumping AST Record Layout +// CHECK-NEXT: 0 | struct C +// CHECK-NEXT: 0 | struct B0 (base) (empty) +// CHECK-NEXT: 8 | struct B1 (base) (empty) +// CHECK-NEXT: 16 | struct B2 (base) (empty) +// CHECK-NEXT: 24 | struct B3 (base) (empty) +// CHECK-NEXT: 32 | struct B4 (base) (empty) +// CHECK-NEXT: 32 | int a +// CHECK-NEXT: | [sizeof=40, align=8 +// CHECK-NEXT: | nvsize=40, nvalign=8] struct D { B0 b0; @@ -72,28 +77,31 @@ struct D { }; // CHECK: *** Dumping AST Record Layout -// CHECK: 0 | struct D -// CHECK: 0 | struct B0 b0 (empty) -// CHECK: | [sizeof=8, align=8 -// CHECK: | nvsize=0, nvalign=1] -// CHECK: 8 | struct C0 c0 -// CHECK: 8 | int a -// CHECK: | [sizeof=4, align=4 -// CHECK: | nvsize=4, nvalign=4] -// CHECK: 12 | struct C1 c1 -// CHECK: 12 | int a -// CHECK: | [sizeof=4, align=4 -// CHECK: | nvsize=4, nvalign=4] -// CHECK: 16 | struct C2 c2 -// CHECK: 16 | int a -// CHECK: | [sizeof=4, align=4 -// CHECK: | nvsize=4, nvalign=4] -// CHECK: 24 | struct B1 b1 (empty) -// CHECK: | [sizeof=8, align=8 -// CHECK: | nvsize=0, nvalign=1] -// CHECK: 32 | int a -// CHECK: | [sizeof=40, align=8 -// CHECK: | nvsize=40, nvalign=8] +// CHECK: *** Dumping AST Record Layout +// CHECK: *** Dumping AST Record Layout +// CHECK: *** Dumping AST Record Layout +// CHECK-NEXT: 0 | struct D +// CHECK-NEXT: 0 | struct B0 b0 (empty) +// CHECK-NEXT: | [sizeof=8, align=8 +// CHECK-NEXT: | nvsize=0, nvalign=8] +// CHECK: 8 | struct C0 c0 +// CHECK-NEXT: 8 | int a +// CHECK-NEXT: | [sizeof=4, align=4 +// CHECK-NEXT: | nvsize=4, nvalign=4] +// CHECK: 12 | struct C1 c1 +// CHECK-NEXT: 12 | int a +// CHECK-NEXT: | [sizeof=4, align=4 +// CHECK-NEXT: | nvsize=4, nvalign=4] +// CHECK: 16 | struct C2 c2 +// CHECK-NEXT: 16 | int a +// CHECK-NEXT: | [sizeof=4, align=4 +// CHECK-NEXT: | nvsize=4, nvalign=4] +// CHECK: 24 | struct B1 b1 (empty) +// CHECK-NEXT: | [sizeof=8, align=8 +// CHECK-NEXT: | nvsize=0, nvalign=8] +// CHECK: 32 | int a +// CHECK-NEXT: | [sizeof=40, align=8 +// CHECK-NEXT: | nvsize=40, nvalign=8] struct E : B0, C0, C1, C2, B1 { int a; @@ -101,18 +109,18 @@ struct E : B0, C0, C1, C2, B1 { }; // CHECK: *** Dumping AST Record Layout -// CHECK: 0 | struct E -// CHECK: 0 | struct B0 (base) (empty) -// CHECK: 0 | struct C0 (base) -// CHECK: 0 | int a -// CHECK: 4 | struct C1 (base) -// CHECK: 4 | int a -// CHECK: 8 | struct C2 (base) -// CHECK: 8 | int a -// CHECK: 16 | struct B1 (base) (empty) -// CHECK: 16 | int a -// CHECK: | [sizeof=24, align=8 -// CHECK: | nvsize=24, nvalign=8] +// CHECK-NEXT: 0 | struct E +// CHECK-NEXT: 0 | struct B0 (base) (empty) +// CHECK-NEXT: 0 | struct C0 (base) +// CHECK-NEXT: 0 | int a +// CHECK-NEXT: 4 | struct C1 (base) +// CHECK-NEXT: 4 | int a +// CHECK-NEXT: 8 | struct C2 (base) +// CHECK-NEXT: 8 | int a +// CHECK-NEXT: 16 | struct B1 (base) (empty) +// CHECK-NEXT: 16 | int a +// CHECK-NEXT: | [sizeof=24, align=8 +// CHECK-NEXT: | nvsize=24, nvalign=8] struct F : C0, B0, B1, C1 { int a; @@ -120,16 +128,16 @@ struct F : C0, B0, B1, C1 { }; // CHECK: *** Dumping AST Record Layout -// CHECK: 0 | struct F -// CHECK: 0 | struct C0 (base) -// CHECK: 0 | int a -// CHECK: 8 | struct B0 (base) (empty) -// CHECK: 16 | struct B1 (base) (empty) -// CHECK: 16 | struct C1 (base) -// CHECK: 16 | int a -// CHECK: 20 | int a -// CHECK: | [sizeof=24, align=8 -// CHECK: | nvsize=24, nvalign=8] +// CHECK-NEXT: 0 | struct F +// CHECK-NEXT: 0 | struct C0 (base) +// CHECK-NEXT: 0 | int a +// CHECK-NEXT: 8 | struct B0 (base) (empty) +// CHECK-NEXT: 16 | struct B1 (base) (empty) +// CHECK-NEXT: 16 | struct C1 (base) +// CHECK-NEXT: 16 | int a +// CHECK-NEXT: 20 | int a +// CHECK-NEXT: | [sizeof=24, align=8 +// CHECK-NEXT: | nvsize=24, nvalign=8] struct G : B0, B1, B2, B3, B4 { __declspec(align(32)) int a; @@ -137,15 +145,15 @@ struct G : B0, B1, B2, B3, B4 { }; // CHECK: *** Dumping AST Record Layout -// CHECK: 0 | struct G -// CHECK: 0 | struct B0 (base) (empty) -// CHECK: 8 | struct B1 (base) (empty) -// CHECK: 16 | struct B2 (base) (empty) -// CHECK: 24 | struct B3 (base) (empty) -// CHECK: 32 | struct B4 (base) (empty) -// CHECK: 32 | int a -// CHECK: | [sizeof=64, align=32 -// CHECK: | nvsize=64, nvalign=32] +// CHECK-NEXT: 0 | struct G +// CHECK-NEXT: 0 | struct B0 (base) (empty) +// CHECK-NEXT: 8 | struct B1 (base) (empty) +// CHECK-NEXT: 16 | struct B2 (base) (empty) +// CHECK-NEXT: 24 | struct B3 (base) (empty) +// CHECK-NEXT: 32 | struct B4 (base) (empty) +// CHECK-NEXT: 32 | int a +// CHECK-NEXT: | [sizeof=64, align=32 +// CHECK-NEXT: | nvsize=64, nvalign=32] struct __declspec(align(32)) H : B0, B1, B2, B3, B4 { int a; @@ -153,15 +161,15 @@ struct __declspec(align(32)) H : B0, B1, B2, B3, B4 { }; // CHECK: *** Dumping AST Record Layout -// CHECK: 0 | struct H -// CHECK: 0 | struct B0 (base) (empty) -// CHECK: 8 | struct B1 (base) (empty) -// CHECK: 16 | struct B2 (base) (empty) -// CHECK: 24 | struct B3 (base) (empty) -// CHECK: 32 | struct B4 (base) (empty) -// CHECK: 32 | int a -// CHECK: | [sizeof=64, align=32 -// CHECK: | nvsize=40, nvalign=8] +// CHECK-NEXT: 0 | struct H +// CHECK-NEXT: 0 | struct B0 (base) (empty) +// CHECK-NEXT: 8 | struct B1 (base) (empty) +// CHECK-NEXT: 16 | struct B2 (base) (empty) +// CHECK-NEXT: 24 | struct B3 (base) (empty) +// CHECK-NEXT: 32 | struct B4 (base) (empty) +// CHECK-NEXT: 32 | int a +// CHECK-NEXT: | [sizeof=64, align=32 +// CHECK-NEXT: | nvsize=40, nvalign=32] int a[ sizeof(A)+ |