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
5struct {
6        char one;
7        long two;
8} defaultalign;
9
10#pragma pack(4)
11struct {
12        char one;
13        long two;
14} sixteen;
15
16#pragma pack(1)
17struct {
18        char one;
19        long two;
20} two;
21
22#pragma pack(2)
23struct {
24        char one;
25        long two;
26} three;
27
28#pragma pack()
29struct {
30        char one;
31        long two;
32} resetalign;
33
34main()
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