diff options
author | Warren Hunt <whunt@google.com> | 2014-02-22 00:40:37 +0000 |
---|---|---|
committer | Warren Hunt <whunt@google.com> | 2014-02-22 00:40:37 +0000 |
commit | 26d016d3014eb6987d2cf19180a2c73d153f7bcd (patch) | |
tree | 300e5253cba5534cbd0ffbfe697f8cece6f47768 /test/Layout | |
parent | 9fd9fdd45a30d3be9210952f6bda82e420347507 (diff) | |
download | clang-26d016d3014eb6987d2cf19180a2c73d153f7bcd.tar.gz |
[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.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201917 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Layout')
-rw-r--r-- | test/Layout/ms-x86-basic-layout.cpp | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/test/Layout/ms-x86-basic-layout.cpp b/test/Layout/ms-x86-basic-layout.cpp index f4fd34a265..c522de84b2 100644 --- a/test/Layout/ms-x86-basic-layout.cpp +++ b/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]; |