mirror of
https://github.com/dlang/dmd.git
synced 2025-04-26 05:00:16 +03:00
159 lines
3.2 KiB
C
159 lines
3.2 KiB
C
// DISABLED: win32 win64
|
|
|
|
// https://issues.dlang.org/show_bug.cgi?id=23427
|
|
|
|
_Static_assert(sizeof(unsigned) == 4, "1");
|
|
|
|
struct A {
|
|
unsigned x :8;
|
|
unsigned y :4;
|
|
unsigned z :20;
|
|
};
|
|
_Static_assert(sizeof(struct A)==4, "2");
|
|
|
|
struct B {
|
|
unsigned x :4;
|
|
unsigned y :2;
|
|
unsigned z :26;
|
|
};
|
|
_Static_assert(sizeof(struct B)==4, "3");
|
|
|
|
struct C {
|
|
unsigned x :4;
|
|
unsigned y :4;
|
|
unsigned z :24;
|
|
};
|
|
_Static_assert(sizeof(struct C)==4, "4"); // This one fails
|
|
|
|
|
|
_Static_assert(sizeof(struct {
|
|
unsigned a: 1;
|
|
unsigned b: 7;
|
|
unsigned c: 24;
|
|
}) == sizeof(unsigned), "1 7 24");
|
|
|
|
_Static_assert(sizeof(struct {
|
|
unsigned a: 2;
|
|
unsigned b: 6;
|
|
unsigned c: 24;
|
|
}) == sizeof(unsigned), "2 6 24");
|
|
|
|
_Static_assert(sizeof(struct {
|
|
unsigned a: 3;
|
|
unsigned b: 5;
|
|
unsigned c: 24;
|
|
}) == sizeof(unsigned), "3 5 24");
|
|
|
|
_Static_assert(sizeof(struct {
|
|
unsigned a: 4;
|
|
unsigned b: 4;
|
|
unsigned c: 24;
|
|
}) == sizeof(unsigned), "4 4 24");
|
|
|
|
_Static_assert(sizeof(struct {
|
|
unsigned a: 5;
|
|
unsigned b: 3;
|
|
unsigned c: 24;
|
|
}) == sizeof(unsigned), "5 3 24");
|
|
|
|
_Static_assert(sizeof(struct {
|
|
unsigned a: 6;
|
|
unsigned b: 2;
|
|
unsigned c: 24;
|
|
}) == sizeof(unsigned), "6 2 24");
|
|
|
|
_Static_assert(sizeof(struct {
|
|
unsigned a: 7;
|
|
unsigned b: 1;
|
|
unsigned c: 24;
|
|
}) == sizeof(unsigned), "7 1 24");
|
|
|
|
_Static_assert(sizeof(struct {
|
|
unsigned a: 8;
|
|
unsigned b: 9;
|
|
unsigned c: 15;
|
|
}) == sizeof(unsigned), "8 9 15");
|
|
|
|
_Static_assert(sizeof(struct {
|
|
unsigned a: 8;
|
|
unsigned b: 10;
|
|
unsigned c: 14;
|
|
}) == sizeof(unsigned), "8 10 14");
|
|
|
|
_Static_assert(sizeof(struct {
|
|
unsigned a: 8;
|
|
unsigned b: 11;
|
|
unsigned c: 13;
|
|
}) == sizeof(unsigned), "8 11 13");
|
|
|
|
_Static_assert(sizeof(struct {
|
|
unsigned a: 8;
|
|
unsigned b: 12;
|
|
unsigned c: 12;
|
|
}) == sizeof(unsigned), "8 12 12");
|
|
|
|
_Static_assert(sizeof(struct {
|
|
unsigned a: 8;
|
|
unsigned b: 13;
|
|
unsigned c: 11;
|
|
}) == sizeof(unsigned), "8 13 11");
|
|
|
|
_Static_assert(sizeof(struct {
|
|
unsigned a: 8;
|
|
unsigned b: 14;
|
|
unsigned c: 10;
|
|
}) == sizeof(unsigned), "8 14 10");
|
|
|
|
_Static_assert(sizeof(struct {
|
|
unsigned a: 8;
|
|
unsigned b: 15;
|
|
unsigned c: 9;
|
|
}) == sizeof(unsigned), "8 15 9");
|
|
|
|
_Static_assert(sizeof(struct {
|
|
unsigned a: 8;
|
|
unsigned b: 16;
|
|
unsigned c: 8;
|
|
}) == sizeof(unsigned), "8 16 8");
|
|
|
|
_Static_assert(sizeof(struct {
|
|
unsigned a: 8;
|
|
unsigned b: 17;
|
|
unsigned c: 7;
|
|
}) == sizeof(unsigned), "8 17 7");
|
|
|
|
_Static_assert(sizeof(struct {
|
|
unsigned a: 8;
|
|
unsigned b: 18;
|
|
unsigned c: 6;
|
|
}) == sizeof(unsigned), "8 18 6");
|
|
|
|
_Static_assert(sizeof(struct {
|
|
unsigned a: 8;
|
|
unsigned b: 19;
|
|
unsigned c: 5;
|
|
}) == sizeof(unsigned), "8 19 5");
|
|
|
|
_Static_assert(sizeof(struct {
|
|
unsigned a: 8;
|
|
unsigned b: 20;
|
|
unsigned c: 4;
|
|
}) == sizeof(unsigned), "8 20 4");
|
|
|
|
_Static_assert(sizeof(struct {
|
|
unsigned a: 8;
|
|
unsigned b: 21;
|
|
unsigned c: 3;
|
|
}) == sizeof(unsigned), "8 21 3");
|
|
|
|
_Static_assert(sizeof(struct {
|
|
unsigned a: 8;
|
|
unsigned b: 22;
|
|
unsigned c: 2;
|
|
}) == sizeof(unsigned), "8 22 2");
|
|
|
|
_Static_assert(sizeof(struct {
|
|
unsigned a: 8;
|
|
unsigned b: 23;
|
|
unsigned c: 1;
|
|
}) == sizeof(unsigned), "8 23 1");
|