• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // REQUIRES: arm-registered-target
2 // RUN: %clang_cc1 -target-abi aapcs -triple armv7-apple-darwin10 %s -verify
3 
4 #include <stddef.h>
5 
6 struct t1
7 {
8   int foo : 1;
9   char : 0;
10   char bar;
11 };
12 static int arr1_offset[(offsetof(struct t1, bar) == 1) ? 0 : -1];
13 static int arr1_sizeof[(sizeof(struct t1) == 4) ? 0 : -1];
14 
15 struct t2
16 {
17   int foo : 1;
18   short : 0;
19   char bar;
20 };
21 static int arr2_offset[(offsetof(struct t2, bar) == 2) ? 0 : -1];
22 static int arr2_sizeof[(sizeof(struct t2) == 4) ? 0 : -1];
23 
24 struct t3
25 {
26   int foo : 1;
27   int : 0;
28   char bar;
29 };
30 static int arr3_offset[(offsetof(struct t3, bar) == 4) ? 0 : -1];
31 static int arr3_sizeof[(sizeof(struct t3) == 8) ? 0 : -1];
32 
33 struct t4
34 {
35   int foo : 1;
36   long : 0;
37   char bar;
38 };
39 static int arr4_offset[(offsetof(struct t4, bar) == 4) ? 0 : -1];
40 static int arr4_sizeof[(sizeof(struct t4) == 8) ? 0 : -1];
41 
42 struct t5
43 {
44   int foo : 1;
45   long long : 0;
46   char bar;
47 };
48 static int arr5_offset[(offsetof(struct t5, bar) == 8) ? 0 : -1];
49 static int arr5_sizeof[(sizeof(struct t5) == 16) ? 0 : -1];
50 
51 struct t6
52 {
53   int foo : 1;
54   char : 0;
55   char bar : 1;
56   char bar2;
57 };
58 static int arr6_offset[(offsetof(struct t6, bar2) == 2) ? 0 : -1];
59 static int arr6_sizeof[(sizeof(struct t6) == 4) ? 0 : -1];
60 
61 struct t7
62 {
63   int foo : 1;
64   short : 0;
65   char bar1 : 1;
66   char bar2;
67 };
68 static int arr7_offset[(offsetof(struct t7, bar2) == 3) ? 0 : -1];
69 static int arr7_sizeof[(sizeof(struct t7) == 4) ? 0 : -1];
70 
71 struct t8
72 {
73   int foo : 1;
74   int : 0;
75   char bar1 : 1;
76   char bar2;
77 };
78 static int arr8_offset[(offsetof(struct t8, bar2) == 5) ? 0 : -1];
79 static int arr8_sizeof[(sizeof(struct t8) == 8) ? 0 : -1];
80 
81 struct t9
82 {
83   int foo : 1;
84   long : 0;
85   char bar1 : 1;
86   char bar2;
87 };
88 static int arr9_offset[(offsetof(struct t9, bar2) == 5) ? 0 : -1];
89 static int arr9_sizeof[(sizeof(struct t9) == 8) ? 0 : -1];
90 
91 struct t10
92 {
93   int foo : 1;
94   long long : 0;
95   char bar1 : 1;
96   char bar2;
97 };
98 static int arr10_offset[(offsetof(struct t10, bar2) == 9) ? 0 : -1];
99 static int arr10_sizeof[(sizeof(struct t10) == 16) ? 0 : -1];
100 
101 struct t11
102 {
103   int foo : 1;
104   long long : 0;
105   char : 0;
106   char bar1 : 1;
107   char bar2;
108 };
109 static int arr11_offset[(offsetof(struct t11, bar2) == 9) ? 0 : -1];
110 static int arr11_sizeof[(sizeof(struct t11) == 16) ? 0 : -1];
111 
112 struct t12
113 {
114   int foo : 1;
115   char : 0;
116   long long : 0;
117   char : 0;
118   char bar;
119 };
120 static int arr12_offset[(offsetof(struct t12, bar) == 8) ? 0 : -1];
121 static int arr12_sizeof[(sizeof(struct t12) == 16) ? 0 : -1];
122 
123 struct t13
124 {
125   char foo;
126   long : 0;
127   char bar;
128 };
129 static int arr13_offset[(offsetof(struct t13, bar) == 4) ? 0 : -1];
130 static int arr13_sizeof[(sizeof(struct t13) == 8) ? 0 : -1];
131 
132 struct t14
133 {
134   char foo1;
135   int : 0;
136   char foo2 : 1;
137   short foo3 : 16;
138   char : 0;
139   short foo4 : 16;
140   char bar1;
141   int : 0;
142   char bar2;
143 };
144 static int arr14_bar1_offset[(offsetof(struct t14, bar1) == 10) ? 0 : -1];
145 static int arr14_bar2_offset[(offsetof(struct t14, bar2) == 12) ? 0 : -1];
146 static int arr14_sizeof[(sizeof(struct t14) == 16) ? 0 : -1];
147 
148 struct t15
149 {
150   char foo;
151   char : 0;
152   int : 0;
153   char bar;
154   long : 0;
155   char : 0;
156 };
157 static int arr15_offset[(offsetof(struct t15, bar) == 4) ? 0 : -1];
158 static int arr15_sizeof[(sizeof(struct t15) == 8) ? 0 : -1];
159 
160 struct t16
161 {
162   long : 0;
163   char bar;
164 };
165 static int arr16_offset[(offsetof(struct t16, bar) == 0) ? 0 : -1];
166 static int arr16_sizeof[(sizeof(struct t16) == 4) ? 0 : -1];
167 
168 struct t17
169 {
170   char foo;
171   long : 0;
172   long : 0;
173   char : 0;
174   char bar;
175 };
176 static int arr17_offset[(offsetof(struct t17, bar) == 4) ? 0 : -1];
177 static int arr17_sizeof[(sizeof(struct t17) == 8) ? 0 : -1];
178 
179 struct t18
180 {
181   long : 0;
182   long : 0;
183   char : 0;
184 };
185 static int arr18_sizeof[(sizeof(struct t18) == 0) ? 0 : -1];
186 
187 struct t19
188 {
189   char foo1;
190   long foo2 : 1;
191   char : 0;
192   long foo3 : 32;
193   char bar;
194 };
195 static int arr19_offset[(offsetof(struct t19, bar) == 8) ? 0 : -1];
196 static int arr19_sizeof[(sizeof(struct t19) == 12) ? 0 : -1];
197 
198 struct t20
199 {
200   short : 0;
201   int foo : 1;
202   long : 0;
203   char bar;
204 };
205 static int arr20_offset[(offsetof(struct t20, bar) == 4) ? 0 : -1];
206 static int arr20_sizeof[(sizeof(struct t20) == 8) ? 0 : -1];
207 
208 struct t21
209 {
210   short : 0;
211   int foo1 : 1;
212   char : 0;
213   int foo2 : 16;
214   long : 0;
215   char bar1;
216   int bar2;
217   long bar3;
218   char foo3 : 8;
219   char : 0;
220   long : 0;
221   int foo4 : 32;
222   short foo5: 1;
223   long bar4;
224   short foo6: 16;
225   short foo7: 16;
226   short foo8: 16;
227 };
228 static int arr21_bar1_offset[(offsetof(struct t21, bar1) == 4) ? 0 : -1];
229 static int arr21_bar2_offset[(offsetof(struct t21, bar2) == 8) ? 0 : -1];
230 static int arr21_bar3_offset[(offsetof(struct t21, bar3) == 12) ? 0 : -1];
231 static int arr21_bar4_offset[(offsetof(struct t21, bar4) == 28) ? 0 : -1];
232 static int arr21_sizeof[(sizeof(struct t21) == 40) ? 0 : -1];
233 
main()234 int main() {
235   return 0;
236 }
237 
238