blob: e2883fdd095365eaf76a5815434bbb97781a1256 [file] [log] [blame]
/* REQUIRED_ARGS: -preview=bitfields
*/
/***************************************************/
class C
{
uint a:3;
uint b:1;
ulong c:64;
int d:3;
int e:1;
long f:64;
int i;
}
static assert(C.a.min == 0);
static assert(C.a.max == 7);
static assert(C.b.min == 0);
static assert(C.b.max == 1);
static assert(C.c.min == 0);
static assert(C.c.max == ulong.max);
static assert(C.d.min == -4);
static assert(C.d.max == 3);
static assert(C.e.min == -1);
static assert(C.e.max == 0);
static assert(C.f.min == long.min);
static assert(C.f.max == long.max);
int testc()
{
scope c = new C();
c.d = 9;
return c.d;
}
static assert(testc() == 1);
/***************************************************/
union U
{
uint a:3;
uint b:1;
ulong c:64;
int d:3;
int e:1;
long f:64;
int i;
}
static assert(U.sizeof == 8);
static assert(U.a.min == 0);
static assert(U.a.max == 7);
static assert(U.b.min == 0);
static assert(U.b.max == 1);
static assert(U.c.min == 0);
static assert(U.c.max == ulong.max);
static assert(U.d.min == -4);
static assert(U.d.max == 3);
static assert(U.e.min == -1);
static assert(U.e.max == 0);
static assert(U.f.min == long.min);
static assert(U.f.max == long.max);
int testu()
{
U u;
u.d = 9;
return u.d;
}
static assert(testu() == 1);