diff options
author | John McCall <rjmccall@apple.com> | 2014-01-29 07:53:44 +0000 |
---|---|---|
committer | John McCall <rjmccall@apple.com> | 2014-01-29 07:53:44 +0000 |
commit | 30268ca2e0ae32f949a8408206869073698cf213 (patch) | |
tree | 4453707aae3d5e90ed09fffae5c1e9e05a94d672 /clang/test/CodeGen/ms_struct-pack.c | |
parent | 6e15ec14424995e41cd2db5de434054106cdc2f8 (diff) | |
download | bcm5719-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.c | 21 |
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]; |