xref: /openbsd-src/gnu/usr.bin/gcc/gcc/testsuite/gcc.dg/pragma-align.c (revision c87b03e512fc05ed6e0222f6fb0ae86264b1d05b)
1 /* Prove that HANDLE_SYSTEMV_PRAGMA alignment handling works somewhat. */
2 
3 /* { dg-do compile { target i?86-*-linux* i?86-*-*bsd* i?86-*-sco3.2v5* } } */
4 
5 struct {
6         char one;
7         long two;
8 } defaultalign;
9 
10 #pragma pack(4)
11 struct {
12         char one;
13         long two;
14 } sixteen;
15 
16 #pragma pack(1)
17 struct {
18         char one;
19         long two;
20 } two;
21 
22 #pragma pack(2)
23 struct {
24         char one;
25         long two;
26 } three;
27 
28 #pragma pack()
29 struct {
30         char one;
31         long two;
32 } resetalign;
33 
main()34 main()
35 {
36         if(sizeof(sixteen) < sizeof(defaultalign)) abort();
37         if(sizeof(two) >= sizeof(defaultalign)) abort();
38         if(sizeof(three) <= sizeof(two)) abort();
39         if(sizeof(resetalign) != sizeof(defaultalign)) abort();
40 	return 0;
41 }
42 
43