dmd/compiler/test/compilable/pragmapack.c
2022-07-09 18:53:07 +02:00

45 lines
648 B
C

// Test #pragma pack
#pragma pack(2)
struct S
{
int i;
short j;
double k;
};
#pragma pack()
_Static_assert(sizeof(struct S) == 4 + 2 + 8, "1");
#pragma pack(push, 8)
struct S2
{
char a, b;
};
#pragma pack(pop)
_Static_assert(sizeof(struct S2) == 1 + 1, "2");
#pragma pack(push, 8)
struct S3
{
unsigned short u;
char a;
};
#pragma pack(pop)
_Static_assert(sizeof(struct S3) == 4, "3");
#pragma pack()
#pragma pack(show)
#pragma pack(2)
#pragma pack(push)
#pragma pack(push,2)
#pragma pack(push,abc)
#pragma pack(push,abc,2)
#pragma pack(pop)
#pragma pack(pop,a)
#pragma pack(pop,2)
#pragma pack(pop,a,b,4,8,c)
int x;