From c85942038af58dbce643b44fe2160f60b137fd53 Mon Sep 17 00:00:00 2001 From: Warren Hunt Date: Sat, 22 Feb 2014 00:40:37 +0000 Subject: [MS-ABI] Fix MSRecordLayout to handel MultiDimensionalArrays A recent change caused multi-dimensional arrays not to be handled correctly, this patch fixes that. Also, it adds a lit test for multi-dimensional arrays. llvm-svn: 201917 --- clang/test/Layout/ms-x86-basic-layout.cpp | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) (limited to 'clang/test/Layout/ms-x86-basic-layout.cpp') diff --git a/clang/test/Layout/ms-x86-basic-layout.cpp b/clang/test/Layout/ms-x86-basic-layout.cpp index f4fd34a2658..c522de84b28 100644 --- a/clang/test/Layout/ms-x86-basic-layout.cpp +++ b/clang/test/Layout/ms-x86-basic-layout.cpp @@ -785,6 +785,21 @@ struct ArrayFieldOfRecords { // CHECK-X64-NEXT: | [sizeof=8, align=4 // CHECK-X64-NEXT: | nvsize=8, nvalign=4] +struct ArrayOfArrayFieldOfRecords { + A4 InlineElts[2][2]; +}; + +// CHECK: *** Dumping AST Record Layout +// CHECK-NEXT: 0 | struct ArrayOfArrayFieldOfRecords +// CHECK-NEXT: 0 | struct A4 [2][2] InlineElts +// CHECK-NEXT: | [sizeof=16, align=4 +// CHECK-NEXT: | nvsize=16, nvalign=4] +// CHECK-X64: *** Dumping AST Record Layout +// CHECK-X64-NEXT: 0 | struct ArrayOfArrayFieldOfRecords +// CHECK-X64-NEXT: 0 | struct A4 [2][2] InlineElts +// CHECK-X64-NEXT: | [sizeof=16, align=4 +// CHECK-X64-NEXT: | nvsize=16, nvalign=4] + int a[ sizeof(TestF0)+ sizeof(TestF1)+ @@ -806,4 +821,6 @@ sizeof(F3)+ sizeof(F4)+ sizeof(F5)+ sizeof(F6)+ -sizeof(ArrayFieldOfRecords)]; +sizeof(ArrayFieldOfRecords)+ +sizeof(ArrayOfArrayFieldOfRecords)+ +0]; -- cgit v1.2.3