1 | // RUN: %clang_cc1 -mms-bitfields -fsyntax-only -verify -triple x86_64-apple-darwin9 %s |
2 | // expected-no-diagnostics |
3 | |
4 | // The -mms-bitfields commandline parameter should behave the same |
5 | // as the ms_struct attribute. |
6 | struct |
7 | { |
8 | int a : 1; |
9 | short b : 1; |
10 | } t; |
11 | |
12 | // MS pads out bitfields between different types. |
13 | static int arr[(sizeof(t) == 8) ? 1 : -1]; |
14 | |
15 | #pragma pack (push,1) |
16 | |
17 | typedef unsigned int UINT32; |
18 | |
19 | struct Inner { |
20 | UINT32 A : 1; |
21 | UINT32 B : 1; |
22 | UINT32 C : 1; |
23 | UINT32 D : 30; |
24 | } Inner; |
25 | |
26 | #pragma pack (pop) |
27 | |
28 | static int arr2[(sizeof(Inner) == 8) ? 1 : -1]; |
29 | |