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