mirror of
https://github.com/xomboverlord/ldc.git
synced 2026-07-29 02:20:04 +02:00
[svn r362] Started merging the old 'test' dir as well as the newer 'tangotests' dir into 'tests/mini' and 'tests/minicomplex'.
This commit is contained in:
39
tests/mini/union5.d
Normal file
39
tests/mini/union5.d
Normal file
@@ -0,0 +1,39 @@
|
||||
module union5;
|
||||
|
||||
pragma(LLVM_internal, "notypeinfo")
|
||||
{
|
||||
union S
|
||||
{
|
||||
T t;
|
||||
U u;
|
||||
uint i;
|
||||
struct {
|
||||
ushort sl,sh;
|
||||
}
|
||||
}
|
||||
|
||||
struct T
|
||||
{
|
||||
int i;
|
||||
}
|
||||
|
||||
struct U
|
||||
{
|
||||
float f;
|
||||
}
|
||||
}
|
||||
|
||||
void main()
|
||||
{
|
||||
S s;
|
||||
assert(s.t.i == 0);
|
||||
assert(s.u.f == 0);
|
||||
s.t.i = -1;
|
||||
assert(s.i == 0xFFFF_FFFF);
|
||||
float f = 3.1415;
|
||||
s.u.f = f;
|
||||
uint pi = *cast(uint*)&f;
|
||||
assert(s.i == pi);
|
||||
assert(s.sl == (pi&0xFFFF));
|
||||
assert(s.sh == (pi>>>16));
|
||||
}
|
||||
Reference in New Issue
Block a user