1/* Prove that pragma alignment handling works somewhat. */
2
3/* { dg-do run { target { ! default_packed } } } */
4
5extern void abort (void);
6
7struct {
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
17struct {
18        char one;
19        long two;
20} sixteen;
21
22#pragma pack(1)
23struct {
24        char one;
25        long two;
26} two;
27
28#pragma pack(2)
29struct {
30        char one;
31        long two;
32} three;
33
34#pragma pack()
35struct {
36        char one;
37        long two;
38} resetalign;
39
40main()
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