diff tests/mini/sextzext.d @ 445:cc40db549aea

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.
author Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
date Fri, 01 Aug 2008 17:59:58 +0200
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/sextzext.d	Fri Aug 01 17:59:58 2008 +0200
@@ -0,0 +1,68 @@
+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;
+}