1 // RUN: %clang_cc1 -emit-llvm-only  -triple x86_64-apple-darwin9 %s
2 // rdar://8823265
3 
4 #define ATTR __attribute__((__ms_struct__))
5 
6 struct
7 {
8    char foo;
9    long : 0;
10    char bar;
11 } ATTR t1;
12 
13 struct
14 {
15    char foo;
16    long : 0;
17    char : 0;
18    int : 0;
19    char bar;
20 } ATTR t2;
21 
22 struct
23 {
24    char foo;
25    long : 0;
26    char : 0;
27    int : 0;
28    char bar;
29    long : 0;
30    char : 0;
31 } ATTR t3;
32 
33 struct
34 {
35    long : 0;
36    char bar;
37 } ATTR t4;
38 
39 struct
40 {
41    long : 0;
42    long : 0;
43    char : 0;
44    char bar;
45 } ATTR t5;
46 
47 struct
48 {
49    long : 0;
50    long : 0;
51    char : 0;
52    char bar;
53 } ATTR t6;
54 
55 struct
56 {
57    char foo;
58    long : 0;
59    int : 0;
60    char bar;
61    char bar1;
62    long : 0;
63    char bar2;
64    char bar3;
65    char : 0;
66    char bar4;
67    char bar5;
68    char : 0;
69    char bar6;
70    char bar7;
71 } ATTR t7;
72 
73 struct
74 {
75    long : 0;
76    long : 0;
77    char : 0;
78 } ATTR t8;
79 
80 struct
81 {
82    char foo;
83    long : 0;
84    int : 0;
85    char bar;
86    char bar1;
87    long : 0;
88    char bar2;
89    char bar3;
90    char : 0;
91    char bar4;
92    char bar5;
93    char : 0;
94    char bar6;
95    char bar7;
96    int  i1;
97    char : 0;
98    long : 0;
99    char :4;
100    char bar8;
101    char : 0;
102    char bar9;
103    char bar10;
104    int  i2;
105    char : 0;
106    long : 0;
107    char :4;
108 } ATTR t9;
109 
110 struct
111 {
112    char foo: 8;
113    long : 0;
114    char bar;
115 } ATTR t10;
116 
117 static int arr1[(sizeof(t1) == 2) -1];
118 static int arr2[(sizeof(t2) == 2) -1];
119 static int arr3[(sizeof(t3) == 2) -1];
120 static int arr4[(sizeof(t4) == 1) -1];
121 static int arr5[(sizeof(t5) == 1) -1];
122 static int arr6[(sizeof(t6) == 1) -1];
123 static int arr7[(sizeof(t7) == 9) -1];
124 static int arr8[(sizeof(t8) == 0) -1];
125 static int arr9[(sizeof(t9) == 28) -1];
126 static int arr10[(sizeof(t10) == 16) -1];
127 
128 int main() {
129   return 0;
130 }
131 
132