diff options
Diffstat (limited to 'test/Layout/ms-x86-empty-nonvirtual-bases.cpp')
-rw-r--r-- | test/Layout/ms-x86-empty-nonvirtual-bases.cpp | 38 |
1 files changed, 25 insertions, 13 deletions
diff --git a/test/Layout/ms-x86-empty-nonvirtual-bases.cpp b/test/Layout/ms-x86-empty-nonvirtual-bases.cpp index 3fca324..07be1d8 100644 --- a/test/Layout/ms-x86-empty-nonvirtual-bases.cpp +++ b/test/Layout/ms-x86-empty-nonvirtual-bases.cpp @@ -40,8 +40,6 @@ struct B : B0 { // 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] @@ -82,23 +80,13 @@ struct D { // 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] @@ -171,6 +159,28 @@ struct __declspec(align(32)) H : B0, B1, B2, B3, B4 { // CHECK-NEXT: | [sizeof=64, align=32 // CHECK-NEXT: | nvsize=40, nvalign=32] +struct I { + int i0[0]; +}; + +// CHECK: *** Dumping AST Record Layout +// CHECK-NEXT: 0 | struct I +// CHECK-NEXT: 0 | int [0] i0 +// CHECK-NEXT: | [sizeof={{1|4}}, align=4, +// CHECK-NEXT: | nvsize=0, nvalign=4] + +struct J : I { + int j; +}; + +// CHECK: *** Dumping AST Record Layout +// CHECK-NEXT: 0 | struct J +// CHECK-NEXT: 0 | struct I (base) +// CHECK-NEXT: 0 | int [0] i0 +// CHECK-NEXT: 0 | int j +// CHECK-NEXT: | [sizeof=4, align=4, +// CHECK-NEXT: | nvsize=4, nvalign=4] + int a[ sizeof(A)+ sizeof(B)+ @@ -179,4 +189,6 @@ sizeof(D)+ sizeof(E)+ sizeof(F)+ sizeof(G)+ -sizeof(H)]; +sizeof(H)+ +sizeof(I)+ +sizeof(J)]; |