OSDN Git Service

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