summaryrefslogtreecommitdiffstats
path: root/clang/test/Layout/ms-x86-basic-layout.cpp
diff options
context:
space:
mode:
authorReid Kleckner <reid@kleckner.net>2014-01-13 19:25:00 +0000
committerReid Kleckner <reid@kleckner.net>2014-01-13 19:25:00 +0000
commit4f017ceedae8245e11ad803f5698ec8afeb8f446 (patch)
treeb3c8940c30211d90cfefa9f50de506a336d3f42f /clang/test/Layout/ms-x86-basic-layout.cpp
parent13ac4bd774b0904c0af700470d264e18639ce3cb (diff)
downloadbcm5719-llvm-4f017ceedae8245e11ad803f5698ec8afeb8f446.tar.gz
bcm5719-llvm-4f017ceedae8245e11ad803f5698ec8afeb8f446.zip
[ms-abi] Quick fix layout of an array of records
This fixes llvm::SmallVector, which fixes lots of TUs in the MS ABI self host. llvm-svn: 199129
Diffstat (limited to 'clang/test/Layout/ms-x86-basic-layout.cpp')
-rw-r--r--clang/test/Layout/ms-x86-basic-layout.cpp18
1 files changed, 17 insertions, 1 deletions
diff --git a/clang/test/Layout/ms-x86-basic-layout.cpp b/clang/test/Layout/ms-x86-basic-layout.cpp
index f509f2938cb..fc57ec9f33c 100644
--- a/clang/test/Layout/ms-x86-basic-layout.cpp
+++ b/clang/test/Layout/ms-x86-basic-layout.cpp
@@ -770,6 +770,21 @@ struct F6 : virtual A16f, A4, virtual B {
// CHECK-X64-NEXT: | [sizeof=96, align=16
// CHECK-X64-NEXT: | nvsize=32, nvalign=16]
+struct ArrayFieldOfRecords {
+ A4 InlineElts[2];
+};
+
+// CHECK: *** Dumping AST Record Layout
+// CHECK-NEXT: 0 | struct ArrayFieldOfRecords
+// CHECK-NEXT: 0 | struct A4 [2] InlineElts
+// CHECK-NEXT: | [sizeof=8, align=4
+// CHECK-NEXT: | nvsize=8, nvalign=4]
+// CHECK-X64: *** Dumping AST Record Layout
+// CHECK-X64-NEXT: 0 | struct ArrayFieldOfRecords
+// CHECK-X64-NEXT: 0 | struct A4 [2] InlineElts
+// CHECK-X64-NEXT: | [sizeof=8, align=4
+// CHECK-X64-NEXT: | nvsize=8, nvalign=4]
+
int a[
sizeof(TestF0)+
sizeof(TestF1)+
@@ -790,4 +805,5 @@ sizeof(F2)+
sizeof(F3)+
sizeof(F4)+
sizeof(F5)+
-sizeof(F6)];
+sizeof(F6)+
+sizeof(ArrayFieldOfRecords)];
OpenPOWER on IntegriCloud