1// RUN: %clang_cc1 -emit-llvm-only  -triple x86_64-apple-darwin9 %s
2// rdar://8823265
3
4#define ATTR __attribute__((__ms_struct__))
5
6struct {
7  unsigned int bf_1 : 12;
8  unsigned int : 0;
9  unsigned int bf_2 : 12;
10} ATTR t1;
11static int a1[(sizeof(t1) == 8) -1];
12
13struct
14{
15  char foo : 4;
16  short : 0;
17  char bar;
18} ATTR t2;
19static int a2[(sizeof(t2) == 4) -1];
20
21#pragma ms_struct on
22struct
23{
24  char foo : 4;
25  short : 0;
26  char bar;
27} t3;
28#pragma ms_struct off
29static int a3[(sizeof(t3) == 4) -1];
30
31struct
32{
33  char foo : 6;
34  long : 0;
35} ATTR t4;
36static int a4[(sizeof(t4) == 8) -1];
37
38struct
39{
40  char foo : 4;
41  short : 0;
42  char bar : 8;
43} ATTR t5;
44static int a5[(sizeof(t5) == 4) -1];
45
46struct
47{
48  char foo : 4;
49  short : 0;
50  long  : 0;
51  char bar;
52} ATTR t6;
53static int a6[(sizeof(t6) == 4) -1];
54
55struct
56{
57  char foo : 4;
58  long  : 0;
59  short : 0;
60  char bar;
61} ATTR t7;
62static int a7[(sizeof(t7) == 16) -1];
63
64struct
65{
66  char foo : 4;
67  short : 0;
68  long  : 0;
69  char bar:7;
70} ATTR t8;
71static int a8[(sizeof(t8) == 4) -1];
72
73struct
74{
75  char foo : 4;
76  long  : 0;
77  short : 0;
78  char bar: 8;
79} ATTR t9;
80static int a9[(sizeof(t9) == 16) -1];
81
82struct
83{
84  char foo : 4;
85  char : 0;
86  short : 0;
87  int : 0;
88  long  :0;
89  char bar;
90} ATTR t10;
91static int a10[(sizeof(t10) == 2) -1];
92