summaryrefslogtreecommitdiffstats
path: root/clang/test/CodeGen/ms_struct-pack.c
diff options
context:
space:
mode:
authorJohn McCall <rjmccall@apple.com>2014-01-29 07:53:44 +0000
committerJohn McCall <rjmccall@apple.com>2014-01-29 07:53:44 +0000
commit30268ca2e0ae32f949a8408206869073698cf213 (patch)
tree4453707aae3d5e90ed09fffae5c1e9e05a94d672 /clang/test/CodeGen/ms_struct-pack.c
parent6e15ec14424995e41cd2db5de434054106cdc2f8 (diff)
downloadbcm5719-llvm-30268ca2e0ae32f949a8408206869073698cf213.tar.gz
bcm5719-llvm-30268ca2e0ae32f949a8408206869073698cf213.zip
Extensively comment bitfield layout, rearrange some
code for legibility, and fix a bug with bitfields in packed ms_structs. rdar://15926990 llvm-svn: 200379
Diffstat (limited to 'clang/test/CodeGen/ms_struct-pack.c')
-rw-r--r--clang/test/CodeGen/ms_struct-pack.c21
1 files changed, 20 insertions, 1 deletions
diff --git a/clang/test/CodeGen/ms_struct-pack.c b/clang/test/CodeGen/ms_struct-pack.c
index da94f54c1fb..6486f2975f1 100644
--- a/clang/test/CodeGen/ms_struct-pack.c
+++ b/clang/test/CodeGen/ms_struct-pack.c
@@ -1,4 +1,4 @@
-// RUN: %clang_cc1 -emit-llvm-only -triple i386-apple-darwin9 %s
+// RUN: %clang_cc1 -emit-llvm-only -triple i386-apple-darwin9 -fdump-record-layouts %s | FileCheck %s
// rdar://8823265
#pragma pack(1)
@@ -123,3 +123,22 @@ typedef struct _eight_ms eight_ms;
static int a8[(sizeof(eight_ms) == 48) - 1];
+// rdar://15926990
+#pragma pack(2)
+struct test0 {
+ unsigned long a : 8;
+ unsigned long b : 8;
+ unsigned long c : 8;
+ unsigned long d : 10;
+ unsigned long e : 1;
+} __attribute__((__ms_struct__));
+
+// CHECK: Type: struct test0
+// CHECK-NEXT: Record:
+// CHECK-NEXT: Layout:
+// CHECK-NEXT: Size:64
+// CHECK-NEXT: DataSize:64
+// CHECK-NEXT: Alignment:16
+// CHECK-NEXT: FieldOffsets: [0, 8, 16, 32, 42]>
+
+static int test0[(sizeof(struct test0) == 8) ? 1 : -1];
OpenPOWER on IntegriCloud