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()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