[svn] r7700: nemerle/trunk/ncc: generation/ILEmitter.n
testsuite/positive/int-ptr.n
malekith
svnadmin at nemerle.org
Mon Jun 11 12:30:45 CEST 2007
Log:
Allow array load from intptr arrays, patch by msinger (#1024).
Author: malekith
Date: Mon Jun 11 12:30:44 2007
New Revision: 7700
Modified:
nemerle/trunk/ncc/generation/ILEmitter.n
nemerle/trunk/ncc/testsuite/positive/int-ptr.n
Modified: nemerle/trunk/ncc/generation/ILEmitter.n
==============================================================================
--- nemerle/trunk/ncc/generation/ILEmitter.n (original)
+++ nemerle/trunk/ncc/generation/ILEmitter.n Mon Jun 11 12:30:44 2007
@@ -2037,6 +2037,7 @@
| "Int64" | "UInt64" => OpCodes.Stelem_I8
| "Single" => OpCodes.Stelem_R4
| "Double" => OpCodes.Stelem_R8
+ | "IntPtr" | "UIntPtr" => OpCodes.Stelem_I
| _ => Util.ice ("System.Type IsPrimitive has lied")
}
_ilg.Emit (opcode);
@@ -2072,6 +2073,7 @@
| "Int64" | "UInt64" => OpCodes.Ldelem_I8
| "Single" => OpCodes.Ldelem_R4
| "Double" => OpCodes.Ldelem_R8
+ | "IntPtr" | "UIntPtr" => OpCodes.Ldelem_I
| _ => Util.ice ("System.Type.IsPrimitive has lied")
}
else
@@ -2102,7 +2104,7 @@
| "UInt64" => OpCodes.Ldind_I8
| "Single" => OpCodes.Ldind_R4
| "Double" => OpCodes.Ldind_R8
- | "IntPtr" => OpCodes.Ldind_I
+ | "IntPtr" | "UIntPtr" => OpCodes.Ldind_I
| _ =>
Util.ice (_method_name + ": not a recognized value type: " + ty.FullName);
}
Modified: nemerle/trunk/ncc/testsuite/positive/int-ptr.n
==============================================================================
--- nemerle/trunk/ncc/testsuite/positive/int-ptr.n (original)
+++ nemerle/trunk/ncc/testsuite/positive/int-ptr.n Mon Jun 11 12:30:44 2007
@@ -3,3 +3,8 @@
def x = System.IntPtr.Zero : object;
def y = x :> System.IntPtr;
assert (y.Equals (System.IntPtr.Zero));
\ No newline at end of file
+
+ // #1024
+ def qq : array[System.IntPtr] = array(5);
+ _ = qq[0];
+ assert (qq[1].Equals(System.IntPtr.Zero));
More information about the svn
mailing list