mirror of
https://github.com/xomboverlord/ldc.git
synced 2026-01-13 03:13:13 +01:00
Removed the -fp80 option and made real be 80bit floats on X86, this is what the D spec really says it should be and fixes a bunch of issues. Changed the handling of parameter attributes to a bit more generalized approach. Added sext/zext attributes for byte/short/ubyte/ushort parameters, fixes #60 . Parameter attribs now properly set for intrinsic calls if necessary. Made the tango.math.Math patch less intrusive. Fixed/added some mini tests.
69 lines
867 B
D
69 lines
867 B
D
module mini.sextzext;
|
|
|
|
void main()
|
|
{
|
|
byte sb = sextreturn1();
|
|
short ss = sextreturn2();
|
|
assert(ss == -2);
|
|
assert(sb == -2);
|
|
assert(sextparam1(-42) == -42);
|
|
assert(sextparam2(-42) == -42);
|
|
|
|
ubyte ub = zextreturn1();
|
|
ushort us = zextreturn2();
|
|
assert(ub == 2);
|
|
assert(us == 2);
|
|
assert(zextparam1(42) == 42);
|
|
assert(zextparam2(42) == 42);
|
|
|
|
assert(getchar() == 'a');
|
|
assert(passchar('z') == 'z');
|
|
|
|
}
|
|
|
|
byte sextreturn1()
|
|
{
|
|
return -2;
|
|
}
|
|
short sextreturn2()
|
|
{
|
|
return -2;
|
|
}
|
|
|
|
ubyte zextreturn1()
|
|
{
|
|
return 2;
|
|
}
|
|
ushort zextreturn2()
|
|
{
|
|
return 2;
|
|
}
|
|
|
|
byte sextparam1(byte b)
|
|
{
|
|
return b;
|
|
}
|
|
short sextparam2(short s)
|
|
{
|
|
return s;
|
|
}
|
|
|
|
ubyte zextparam1(ubyte b)
|
|
{
|
|
return b;
|
|
}
|
|
ushort zextparam2(ushort s)
|
|
{
|
|
return s;
|
|
}
|
|
|
|
char getchar()
|
|
{
|
|
return 'a';
|
|
}
|
|
|
|
char passchar(char ch)
|
|
{
|
|
return ch;
|
|
}
|