162055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian// RUN: %clang_cc1 -emit-llvm-only  -triple x86_64-apple-darwin9 %s
262055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian// rdar://8823265
362055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian
462055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian#define ATTR __attribute__((__ms_struct__))
562055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian
662055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanianstruct
762055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian{
862055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian   char foo;
962055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian   long : 0;
1062055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian   char bar;
1162055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian} ATTR t1;
1262055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian
1362055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanianstruct
1462055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian{
1562055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian   char foo;
1662055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian   long : 0;
1762055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian   char : 0;
1862055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian   int : 0;
1962055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian   char bar;
2062055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian} ATTR t2;
2162055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian
2262055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanianstruct
2362055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian{
2462055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian   char foo;
2562055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian   long : 0;
2662055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian   char : 0;
2762055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian   int : 0;
2862055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian   char bar;
2962055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian   long : 0;
3062055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian   char : 0;
3162055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian} ATTR t3;
3262055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian
3362055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanianstruct
3462055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian{
3562055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian   long : 0;
3662055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian   char bar;
3762055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian} ATTR t4;
3862055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian
3962055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanianstruct
4062055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian{
4162055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian   long : 0;
4262055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian   long : 0;
4362055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian   char : 0;
4462055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian   char bar;
4562055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian} ATTR t5;
4662055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian
4762055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanianstruct
4862055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian{
4962055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian   long : 0;
5062055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian   long : 0;
5162055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian   char : 0;
5262055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian   char bar;
5362055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian} ATTR t6;
5462055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian
5562055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanianstruct
5662055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian{
5762055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian   char foo;
5862055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian   long : 0;
5962055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian   int : 0;
6062055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian   char bar;
6162055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian   char bar1;
6262055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian   long : 0;
6362055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian   char bar2;
6462055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian   char bar3;
6562055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian   char : 0;
6662055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian   char bar4;
6762055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian   char bar5;
6862055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian   char : 0;
6962055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian   char bar6;
7062055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian   char bar7;
7162055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian} ATTR t7;
7262055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian
7362055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanianstruct
7462055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian{
7562055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian   long : 0;
7662055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian   long : 0;
7762055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian   char : 0;
7862055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian} ATTR t8;
7962055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian
8062055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanianstruct
8162055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian{
8262055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian   char foo;
8362055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian   long : 0;
8462055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian   int : 0;
8562055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian   char bar;
8662055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian   char bar1;
8762055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian   long : 0;
8862055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian   char bar2;
8962055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian   char bar3;
9062055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian   char : 0;
9162055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian   char bar4;
9262055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian   char bar5;
9362055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian   char : 0;
9462055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian   char bar6;
9562055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian   char bar7;
9662055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian   int  i1;
9762055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian   char : 0;
9862055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian   long : 0;
9962055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian   char :4;
10062055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian   char bar8;
10162055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian   char : 0;
10262055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian   char bar9;
10362055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian   char bar10;
10462055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian   int  i2;
10562055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian   char : 0;
10662055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian   long : 0;
10762055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian   char :4;
10862055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian} ATTR t9;
10962055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian
110340fa242130c2d8d74c83edca0952e771aebe0e6Fariborz Jahanianstruct
111340fa242130c2d8d74c83edca0952e771aebe0e6Fariborz Jahanian{
112340fa242130c2d8d74c83edca0952e771aebe0e6Fariborz Jahanian   char foo: 8;
113340fa242130c2d8d74c83edca0952e771aebe0e6Fariborz Jahanian   long : 0;
114340fa242130c2d8d74c83edca0952e771aebe0e6Fariborz Jahanian   char bar;
115340fa242130c2d8d74c83edca0952e771aebe0e6Fariborz Jahanian} ATTR t10;
116340fa242130c2d8d74c83edca0952e771aebe0e6Fariborz Jahanian
11762055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanianstatic int arr1[(sizeof(t1) == 2) -1];
11862055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanianstatic int arr2[(sizeof(t2) == 2) -1];
11962055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanianstatic int arr3[(sizeof(t3) == 2) -1];
12062055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanianstatic int arr4[(sizeof(t4) == 1) -1];
12162055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanianstatic int arr5[(sizeof(t5) == 1) -1];
12262055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanianstatic int arr6[(sizeof(t6) == 1) -1];
12362055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanianstatic int arr7[(sizeof(t7) == 9) -1];
12462055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanianstatic int arr8[(sizeof(t8) == 0) -1];
12562055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanianstatic int arr9[(sizeof(t9) == 28) -1];
126340fa242130c2d8d74c83edca0952e771aebe0e6Fariborz Jahanianstatic int arr10[(sizeof(t10) == 16) -1];
12762055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian
12862055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanianint main() {
12962055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian  return 0;
13062055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian}
13162055b0618fafb4747e783ba3fedd7bc7d57d27dFariborz Jahanian
132