OSDN Git Service

Fix up recent entries by espindola.
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / consistency.vlad / layout / minimal-struct-size-align.c
1 #include <stdio.h>
2 #include <stddef.h>
3
4 static struct {} s0;
5 static union {} u0;
6 static struct {int :0;} s1;
7 static union {int :0;} u1;
8 static struct {char m;} s2;
9 static union {char m;} u2;
10 static struct {short m;} s3;
11 static union {short m;} u3;
12 static struct {int m;} s4;
13 static union {int m;} u4;
14 static struct {long m;} s5;
15 static union {long m;} u5;
16 static struct {long long m;} s6;
17 static union {long long m;} u6;
18 static struct {char * m;} s7;
19 static union {char * m;} u7;
20 static struct {float m;} s8;
21 static union {float m;} u8;
22 static struct {double m;} s9;
23 static union {double m;} u9;
24 static struct {long double m;} s10;
25 static union {long double m;} u10;
26 static struct {ptrdiff_t m;} s11;
27 static union {ptrdiff_t m;} u11;
28 static struct {size_t m;} s12;
29 static union {size_t m;} u12;
30 static struct {wchar_t m;} s13;
31 static union {wchar_t m;} u13;
32 static struct {struct {char m;}m;} s14;
33 static union {struct {char m;}m;} u14;
34 static struct {union {char m;}m;} s15;
35 static union {union {char m;}m;} u15;
36 static struct {struct {short m;}m;} s16;
37 static union {struct {short m;}m;} u16;
38 static struct {union {short m;}m;} s17;
39 static union {union {short m;}m;} u17;
40 static struct {struct {int m;}m;} s18;
41 static union {struct {int m;}m;} u18;
42 static struct {union {int m;}m;} s19;
43 static union {union {int m;}m;} u19;
44 static struct {struct {long m;}m;} s20;
45 static union {struct {long m;}m;} u20;
46 static struct {union {long m;}m;} s21;
47 static union {union {long m;}m;} u21;
48 static struct {struct {long long m;}m;} s22;
49 static union {struct {long long m;}m;} u22;
50 static struct {union {long long m;}m;} s23;
51 static union {union {long long m;}m;} u23;
52 static struct {struct {char * m;}m;} s24;
53 static union {struct {char * m;}m;} u24;
54 static struct {union {char * m;}m;} s25;
55 static union {union {char * m;}m;} u25;
56 static struct {struct {float m;}m;} s26;
57 static union {struct {float m;}m;} u26;
58 static struct {union {float m;}m;} s27;
59 static union {union {float m;}m;} u27;
60 static struct {struct {double m;}m;} s28;
61 static union {struct {double m;}m;} u28;
62 static struct {union {double m;}m;} s29;
63 static union {union {double m;}m;} u29;
64 static struct {struct {long double m;}m;} s30;
65 static union {struct {long double m;}m;} u30;
66 static struct {union {long double m;}m;} s31;
67 static union {union {long double m;}m;} u31;
68 static struct {struct {ptrdiff_t m;}m;} s32;
69 static union {struct {ptrdiff_t m;}m;} u32;
70 static struct {union {ptrdiff_t m;}m;} s33;
71 static union {union {ptrdiff_t m;}m;} u33;
72 static struct {struct {size_t m;}m;} s34;
73 static union {struct {size_t m;}m;} u34;
74 static struct {union {size_t m;}m;} s35;
75 static union {union {size_t m;}m;} u35;
76 static struct {struct {wchar_t m;}m;} s36;
77 static union {struct {wchar_t m;}m;} u36;
78 static struct {union {wchar_t m;}m;} s37;
79 static union {union {wchar_t m;}m;} u37;
80 static struct {struct {}m;} s38;
81 static union {struct {}m;} u38;
82 static struct {union {}m;} s39;
83 static union {union {}m;} u39;
84 static struct {struct {int :0;}m;} s40;
85 static union {struct {int :0;}m;} u40;
86 static struct {union {int :0;}m;} s41;
87 static union {union {int :0;}m;} u41;
88 static struct {char m [0];} s42;
89 static union {char m [0];} u42;
90 static struct {short m [0];} s43;
91 static union {short m [0];} u43;
92 static struct {int m [0];} s44;
93 static union {int m [0];} u44;
94 static struct {long m [0];} s45;
95 static union {long m [0];} u45;
96 static struct {long long m [0];} s46;
97 static union {long long m [0];} u46;
98 static struct {char * m [0];} s47;
99 static union {char * m [0];} u47;
100 static struct {float m [0];} s48;
101 static union {float m [0];} u48;
102 static struct {double m [0];} s49;
103 static union {double m [0];} u49;
104 static struct {long double m [0];} s50;
105 static union {long double m [0];} u50;
106 static struct {ptrdiff_t m [0];} s51;
107 static union {ptrdiff_t m [0];} u51;
108 static struct {size_t m [0];} s52;
109 static union {size_t m [0];} u52;
110 static struct {wchar_t m [0];} s53;
111 static union {wchar_t m [0];} u53;
112 int main (void) {
113   int min_size = 0;
114   int min_align = 0;
115   printf ("+++Minimal struct size/alignment:\n");
116   if (min_size > sizeof (s0))
117      min_size = sizeof (s0);
118   if (min_align > __alignof__ (s0))
119      min_align = __alignof__ (s0);
120   if (min_size > sizeof (u0))
121      min_size = sizeof (u0);
122   if (min_align > __alignof__ (u0))
123      min_align = __alignof__ (u0);
124   if (min_size > sizeof (s1))
125      min_size = sizeof (s1);
126   if (min_align > __alignof__ (s1))
127      min_align = __alignof__ (s1);
128   if (min_size > sizeof (u1))
129      min_size = sizeof (u1);
130   if (min_align > __alignof__ (u1))
131      min_align = __alignof__ (u1);
132   if (min_size > sizeof (s2))
133      min_size = sizeof (s2);
134   if (min_align > __alignof__ (s2))
135      min_align = __alignof__ (s2);
136   if (min_size > sizeof (u2))
137      min_size = sizeof (u2);
138   if (min_align > __alignof__ (u2))
139      min_align = __alignof__ (u2);
140   if (min_size > sizeof (s3))
141      min_size = sizeof (s3);
142   if (min_align > __alignof__ (s3))
143      min_align = __alignof__ (s3);
144   if (min_size > sizeof (u3))
145      min_size = sizeof (u3);
146   if (min_align > __alignof__ (u3))
147      min_align = __alignof__ (u3);
148   if (min_size > sizeof (s4))
149      min_size = sizeof (s4);
150   if (min_align > __alignof__ (s4))
151      min_align = __alignof__ (s4);
152   if (min_size > sizeof (u4))
153      min_size = sizeof (u4);
154   if (min_align > __alignof__ (u4))
155      min_align = __alignof__ (u4);
156   if (min_size > sizeof (s5))
157      min_size = sizeof (s5);
158   if (min_align > __alignof__ (s5))
159      min_align = __alignof__ (s5);
160   if (min_size > sizeof (u5))
161      min_size = sizeof (u5);
162   if (min_align > __alignof__ (u5))
163      min_align = __alignof__ (u5);
164   if (min_size > sizeof (s6))
165      min_size = sizeof (s6);
166   if (min_align > __alignof__ (s6))
167      min_align = __alignof__ (s6);
168   if (min_size > sizeof (u6))
169      min_size = sizeof (u6);
170   if (min_align > __alignof__ (u6))
171      min_align = __alignof__ (u6);
172   if (min_size > sizeof (s7))
173      min_size = sizeof (s7);
174   if (min_align > __alignof__ (s7))
175      min_align = __alignof__ (s7);
176   if (min_size > sizeof (u7))
177      min_size = sizeof (u7);
178   if (min_align > __alignof__ (u7))
179      min_align = __alignof__ (u7);
180   if (min_size > sizeof (s8))
181      min_size = sizeof (s8);
182   if (min_align > __alignof__ (s8))
183      min_align = __alignof__ (s8);
184   if (min_size > sizeof (u8))
185      min_size = sizeof (u8);
186   if (min_align > __alignof__ (u8))
187      min_align = __alignof__ (u8);
188   if (min_size > sizeof (s9))
189      min_size = sizeof (s9);
190   if (min_align > __alignof__ (s9))
191      min_align = __alignof__ (s9);
192   if (min_size > sizeof (u9))
193      min_size = sizeof (u9);
194   if (min_align > __alignof__ (u9))
195      min_align = __alignof__ (u9);
196   if (min_size > sizeof (s10))
197      min_size = sizeof (s10);
198   if (min_align > __alignof__ (s10))
199      min_align = __alignof__ (s10);
200   if (min_size > sizeof (u10))
201      min_size = sizeof (u10);
202   if (min_align > __alignof__ (u10))
203      min_align = __alignof__ (u10);
204   if (min_size > sizeof (s11))
205      min_size = sizeof (s11);
206   if (min_align > __alignof__ (s11))
207      min_align = __alignof__ (s11);
208   if (min_size > sizeof (u11))
209      min_size = sizeof (u11);
210   if (min_align > __alignof__ (u11))
211      min_align = __alignof__ (u11);
212   if (min_size > sizeof (s12))
213      min_size = sizeof (s12);
214   if (min_align > __alignof__ (s12))
215      min_align = __alignof__ (s12);
216   if (min_size > sizeof (u12))
217      min_size = sizeof (u12);
218   if (min_align > __alignof__ (u12))
219      min_align = __alignof__ (u12);
220   if (min_size > sizeof (s13))
221      min_size = sizeof (s13);
222   if (min_align > __alignof__ (s13))
223      min_align = __alignof__ (s13);
224   if (min_size > sizeof (u13))
225      min_size = sizeof (u13);
226   if (min_align > __alignof__ (u13))
227      min_align = __alignof__ (u13);
228   if (min_size > sizeof (s14))
229      min_size = sizeof (s14);
230   if (min_align > __alignof__ (s14))
231      min_align = __alignof__ (s14);
232   if (min_size > sizeof (u14))
233      min_size = sizeof (u14);
234   if (min_align > __alignof__ (u14))
235      min_align = __alignof__ (u14);
236   if (min_size > sizeof (s15))
237      min_size = sizeof (s15);
238   if (min_align > __alignof__ (s15))
239      min_align = __alignof__ (s15);
240   if (min_size > sizeof (u15))
241      min_size = sizeof (u15);
242   if (min_align > __alignof__ (u15))
243      min_align = __alignof__ (u15);
244   if (min_size > sizeof (s16))
245      min_size = sizeof (s16);
246   if (min_align > __alignof__ (s16))
247      min_align = __alignof__ (s16);
248   if (min_size > sizeof (u16))
249      min_size = sizeof (u16);
250   if (min_align > __alignof__ (u16))
251      min_align = __alignof__ (u16);
252   if (min_size > sizeof (s17))
253      min_size = sizeof (s17);
254   if (min_align > __alignof__ (s17))
255      min_align = __alignof__ (s17);
256   if (min_size > sizeof (u17))
257      min_size = sizeof (u17);
258   if (min_align > __alignof__ (u17))
259      min_align = __alignof__ (u17);
260   if (min_size > sizeof (s18))
261      min_size = sizeof (s18);
262   if (min_align > __alignof__ (s18))
263      min_align = __alignof__ (s18);
264   if (min_size > sizeof (u18))
265      min_size = sizeof (u18);
266   if (min_align > __alignof__ (u18))
267      min_align = __alignof__ (u18);
268   if (min_size > sizeof (s19))
269      min_size = sizeof (s19);
270   if (min_align > __alignof__ (s19))
271      min_align = __alignof__ (s19);
272   if (min_size > sizeof (u19))
273      min_size = sizeof (u19);
274   if (min_align > __alignof__ (u19))
275      min_align = __alignof__ (u19);
276   if (min_size > sizeof (s20))
277      min_size = sizeof (s20);
278   if (min_align > __alignof__ (s20))
279      min_align = __alignof__ (s20);
280   if (min_size > sizeof (u20))
281      min_size = sizeof (u20);
282   if (min_align > __alignof__ (u20))
283      min_align = __alignof__ (u20);
284   if (min_size > sizeof (s21))
285      min_size = sizeof (s21);
286   if (min_align > __alignof__ (s21))
287      min_align = __alignof__ (s21);
288   if (min_size > sizeof (u21))
289      min_size = sizeof (u21);
290   if (min_align > __alignof__ (u21))
291      min_align = __alignof__ (u21);
292   if (min_size > sizeof (s22))
293      min_size = sizeof (s22);
294   if (min_align > __alignof__ (s22))
295      min_align = __alignof__ (s22);
296   if (min_size > sizeof (u22))
297      min_size = sizeof (u22);
298   if (min_align > __alignof__ (u22))
299      min_align = __alignof__ (u22);
300   if (min_size > sizeof (s23))
301      min_size = sizeof (s23);
302   if (min_align > __alignof__ (s23))
303      min_align = __alignof__ (s23);
304   if (min_size > sizeof (u23))
305      min_size = sizeof (u23);
306   if (min_align > __alignof__ (u23))
307      min_align = __alignof__ (u23);
308   if (min_size > sizeof (s24))
309      min_size = sizeof (s24);
310   if (min_align > __alignof__ (s24))
311      min_align = __alignof__ (s24);
312   if (min_size > sizeof (u24))
313      min_size = sizeof (u24);
314   if (min_align > __alignof__ (u24))
315      min_align = __alignof__ (u24);
316   if (min_size > sizeof (s25))
317      min_size = sizeof (s25);
318   if (min_align > __alignof__ (s25))
319      min_align = __alignof__ (s25);
320   if (min_size > sizeof (u25))
321      min_size = sizeof (u25);
322   if (min_align > __alignof__ (u25))
323      min_align = __alignof__ (u25);
324   if (min_size > sizeof (s26))
325      min_size = sizeof (s26);
326   if (min_align > __alignof__ (s26))
327      min_align = __alignof__ (s26);
328   if (min_size > sizeof (u26))
329      min_size = sizeof (u26);
330   if (min_align > __alignof__ (u26))
331      min_align = __alignof__ (u26);
332   if (min_size > sizeof (s27))
333      min_size = sizeof (s27);
334   if (min_align > __alignof__ (s27))
335      min_align = __alignof__ (s27);
336   if (min_size > sizeof (u27))
337      min_size = sizeof (u27);
338   if (min_align > __alignof__ (u27))
339      min_align = __alignof__ (u27);
340   if (min_size > sizeof (s28))
341      min_size = sizeof (s28);
342   if (min_align > __alignof__ (s28))
343      min_align = __alignof__ (s28);
344   if (min_size > sizeof (u28))
345      min_size = sizeof (u28);
346   if (min_align > __alignof__ (u28))
347      min_align = __alignof__ (u28);
348   if (min_size > sizeof (s29))
349      min_size = sizeof (s29);
350   if (min_align > __alignof__ (s29))
351      min_align = __alignof__ (s29);
352   if (min_size > sizeof (u29))
353      min_size = sizeof (u29);
354   if (min_align > __alignof__ (u29))
355      min_align = __alignof__ (u29);
356   if (min_size > sizeof (s30))
357      min_size = sizeof (s30);
358   if (min_align > __alignof__ (s30))
359      min_align = __alignof__ (s30);
360   if (min_size > sizeof (u30))
361      min_size = sizeof (u30);
362   if (min_align > __alignof__ (u30))
363      min_align = __alignof__ (u30);
364   if (min_size > sizeof (s31))
365      min_size = sizeof (s31);
366   if (min_align > __alignof__ (s31))
367      min_align = __alignof__ (s31);
368   if (min_size > sizeof (u31))
369      min_size = sizeof (u31);
370   if (min_align > __alignof__ (u31))
371      min_align = __alignof__ (u31);
372   if (min_size > sizeof (s32))
373      min_size = sizeof (s32);
374   if (min_align > __alignof__ (s32))
375      min_align = __alignof__ (s32);
376   if (min_size > sizeof (u32))
377      min_size = sizeof (u32);
378   if (min_align > __alignof__ (u32))
379      min_align = __alignof__ (u32);
380   if (min_size > sizeof (s33))
381      min_size = sizeof (s33);
382   if (min_align > __alignof__ (s33))
383      min_align = __alignof__ (s33);
384   if (min_size > sizeof (u33))
385      min_size = sizeof (u33);
386   if (min_align > __alignof__ (u33))
387      min_align = __alignof__ (u33);
388   if (min_size > sizeof (s34))
389      min_size = sizeof (s34);
390   if (min_align > __alignof__ (s34))
391      min_align = __alignof__ (s34);
392   if (min_size > sizeof (u34))
393      min_size = sizeof (u34);
394   if (min_align > __alignof__ (u34))
395      min_align = __alignof__ (u34);
396   if (min_size > sizeof (s35))
397      min_size = sizeof (s35);
398   if (min_align > __alignof__ (s35))
399      min_align = __alignof__ (s35);
400   if (min_size > sizeof (u35))
401      min_size = sizeof (u35);
402   if (min_align > __alignof__ (u35))
403      min_align = __alignof__ (u35);
404   if (min_size > sizeof (s36))
405      min_size = sizeof (s36);
406   if (min_align > __alignof__ (s36))
407      min_align = __alignof__ (s36);
408   if (min_size > sizeof (u36))
409      min_size = sizeof (u36);
410   if (min_align > __alignof__ (u36))
411      min_align = __alignof__ (u36);
412   if (min_size > sizeof (s37))
413      min_size = sizeof (s37);
414   if (min_align > __alignof__ (s37))
415      min_align = __alignof__ (s37);
416   if (min_size > sizeof (u37))
417      min_size = sizeof (u37);
418   if (min_align > __alignof__ (u37))
419      min_align = __alignof__ (u37);
420   if (min_size > sizeof (s38))
421      min_size = sizeof (s38);
422   if (min_align > __alignof__ (s38))
423      min_align = __alignof__ (s38);
424   if (min_size > sizeof (u38))
425      min_size = sizeof (u38);
426   if (min_align > __alignof__ (u38))
427      min_align = __alignof__ (u38);
428   if (min_size > sizeof (s39))
429      min_size = sizeof (s39);
430   if (min_align > __alignof__ (s39))
431      min_align = __alignof__ (s39);
432   if (min_size > sizeof (u39))
433      min_size = sizeof (u39);
434   if (min_align > __alignof__ (u39))
435      min_align = __alignof__ (u39);
436   if (min_size > sizeof (s40))
437      min_size = sizeof (s40);
438   if (min_align > __alignof__ (s40))
439      min_align = __alignof__ (s40);
440   if (min_size > sizeof (u40))
441      min_size = sizeof (u40);
442   if (min_align > __alignof__ (u40))
443      min_align = __alignof__ (u40);
444   if (min_size > sizeof (s41))
445      min_size = sizeof (s41);
446   if (min_align > __alignof__ (s41))
447      min_align = __alignof__ (s41);
448   if (min_size > sizeof (u41))
449      min_size = sizeof (u41);
450   if (min_align > __alignof__ (u41))
451      min_align = __alignof__ (u41);
452   if (min_size > sizeof (s42))
453      min_size = sizeof (s42);
454   if (min_align > __alignof__ (s42))
455      min_align = __alignof__ (s42);
456   if (min_size > sizeof (u42))
457      min_size = sizeof (u42);
458   if (min_align > __alignof__ (u42))
459      min_align = __alignof__ (u42);
460   if (min_size > sizeof (s43))
461      min_size = sizeof (s43);
462   if (min_align > __alignof__ (s43))
463      min_align = __alignof__ (s43);
464   if (min_size > sizeof (u43))
465      min_size = sizeof (u43);
466   if (min_align > __alignof__ (u43))
467      min_align = __alignof__ (u43);
468   if (min_size > sizeof (s44))
469      min_size = sizeof (s44);
470   if (min_align > __alignof__ (s44))
471      min_align = __alignof__ (s44);
472   if (min_size > sizeof (u44))
473      min_size = sizeof (u44);
474   if (min_align > __alignof__ (u44))
475      min_align = __alignof__ (u44);
476   if (min_size > sizeof (s45))
477      min_size = sizeof (s45);
478   if (min_align > __alignof__ (s45))
479      min_align = __alignof__ (s45);
480   if (min_size > sizeof (u45))
481      min_size = sizeof (u45);
482   if (min_align > __alignof__ (u45))
483      min_align = __alignof__ (u45);
484   if (min_size > sizeof (s46))
485      min_size = sizeof (s46);
486   if (min_align > __alignof__ (s46))
487      min_align = __alignof__ (s46);
488   if (min_size > sizeof (u46))
489      min_size = sizeof (u46);
490   if (min_align > __alignof__ (u46))
491      min_align = __alignof__ (u46);
492   if (min_size > sizeof (s47))
493      min_size = sizeof (s47);
494   if (min_align > __alignof__ (s47))
495      min_align = __alignof__ (s47);
496   if (min_size > sizeof (u47))
497      min_size = sizeof (u47);
498   if (min_align > __alignof__ (u47))
499      min_align = __alignof__ (u47);
500   if (min_size > sizeof (s48))
501      min_size = sizeof (s48);
502   if (min_align > __alignof__ (s48))
503      min_align = __alignof__ (s48);
504   if (min_size > sizeof (u48))
505      min_size = sizeof (u48);
506   if (min_align > __alignof__ (u48))
507      min_align = __alignof__ (u48);
508   if (min_size > sizeof (s49))
509      min_size = sizeof (s49);
510   if (min_align > __alignof__ (s49))
511      min_align = __alignof__ (s49);
512   if (min_size > sizeof (u49))
513      min_size = sizeof (u49);
514   if (min_align > __alignof__ (u49))
515      min_align = __alignof__ (u49);
516   if (min_size > sizeof (s50))
517      min_size = sizeof (s50);
518   if (min_align > __alignof__ (s50))
519      min_align = __alignof__ (s50);
520   if (min_size > sizeof (u50))
521      min_size = sizeof (u50);
522   if (min_align > __alignof__ (u50))
523      min_align = __alignof__ (u50);
524   if (min_size > sizeof (s51))
525      min_size = sizeof (s51);
526   if (min_align > __alignof__ (s51))
527      min_align = __alignof__ (s51);
528   if (min_size > sizeof (u51))
529      min_size = sizeof (u51);
530   if (min_align > __alignof__ (u51))
531      min_align = __alignof__ (u51);
532   if (min_size > sizeof (s52))
533      min_size = sizeof (s52);
534   if (min_align > __alignof__ (s52))
535      min_align = __alignof__ (s52);
536   if (min_size > sizeof (u52))
537      min_size = sizeof (u52);
538   if (min_align > __alignof__ (u52))
539      min_align = __alignof__ (u52);
540   if (min_size > sizeof (s53))
541      min_size = sizeof (s53);
542   if (min_align > __alignof__ (s53))
543      min_align = __alignof__ (s53);
544   if (min_size > sizeof (u53))
545      min_size = sizeof (u53);
546   if (min_align > __alignof__ (u53))
547      min_align = __alignof__ (u53);
548   printf ("min struct/union size =%d\n", min_size);
549   printf ("min struct/union align=%d\n", min_align);
550   return 0;
551 }