Files
ldc/tests/mini/sextzext.d
Tomas Lindquist Olsen 9b45fc5533 Changed the handling of variadic intrinsics a bit.
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.
2008-08-01 17:59:58 +02:00

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;
}