mirror of
https://github.com/xomboverlord/ldc.git
synced 2026-01-12 10:53:14 +01:00
24 lines
456 B
D
24 lines
456 B
D
module assign;
|
|
|
|
// this is taken from std.intrinsic from gdc
|
|
|
|
int mybtc(uint *p, uint bitnum)
|
|
{
|
|
uint * q = p + (bitnum / (uint.sizeof*8));
|
|
uint mask = 1 << (bitnum & ((uint.sizeof*8) - 1));
|
|
int result = *q & mask;
|
|
*q ^= mask;
|
|
return result ? -1 : 0;
|
|
}
|
|
|
|
void main()
|
|
{
|
|
uint i = 0xFFFF_FFFF;
|
|
int r = mybtc(&i, 31);
|
|
assert(r);
|
|
assert(i == 0x7FFF_FFFF);
|
|
r = mybtc(&i, 31);
|
|
assert(!r);
|
|
assert(i == 0xFFFF_FFFF);
|
|
}
|