1 /* Prove that pragma alignment handling works somewhat. */
2 
3 /* { dg-do run { target { ! default_packed } } } */
4 
5 extern void abort (void);
6 
7 struct {
8         char one;
9         long two;
10 } defaultalign;
11 
12 #if defined(__LP64__)
13 #pragma pack(8)
14 #else
15 #pragma pack(4)
16 #endif
17 struct {
18         char one;
19         long two;
20 } sixteen;
21 
22 #pragma pack(1)
23 struct {
24         char one;
25         long two;
26 } two;
27 
28 #pragma pack(2)
29 struct {
30         char one;
31         long two;
32 } three;
33 
34 #pragma pack()
35 struct {
36         char one;
37         long two;
38 } resetalign;
39 
main()40 main()
41 {
42         if(sizeof(sixteen) < sizeof(defaultalign)) abort();
43         if(sizeof(two) >= sizeof(defaultalign)) abort();
44         if(sizeof(three) <= sizeof(two)) abort();
45         if(sizeof(resetalign) != sizeof(defaultalign)) abort();
46 	return 0;
47 }
48