/* On Solaris, #pragma pack should accept macro expansion. */ /* { dg-do run { target *-*-solaris2.* } } */ extern void abort (void); struct { char one; long two; } defaultalign; #define ALIGNHIGH 16 #pragma pack(ALIGNHIGH) struct { char one; long two; } sixteen; #define ALIGN1(X) 1 #pragma pack(ALIGN1(4)) struct { char one; long two; } two; #define ALIGN2(X) X #pragma pack(ALIGN2(2)) struct { char one; long two; } three; #define EMPTY #pragma pack(EMPTY) struct { char one; long two; } resetalign; main() { if(sizeof(sixteen) < sizeof(defaultalign)) abort(); if(sizeof(two) >= sizeof(defaultalign)) abort(); if(sizeof(three) <= sizeof(two)) abort(); if(sizeof(resetalign) != sizeof(defaultalign)) abort(); return 0; }