2007-12-09 Robert Jordan <robertj@gmx.net>
* mini-x86.c (mono_arch_emit_epilog):
Consider all kinds of 64-bit types. Fixes #323114.
In mono/tests:
2007-12-09 Robert Jordan <robertj@gmx.net>
* bug-323114.cs: Add test case for #323114.
svn path=/trunk/mono/; revision=91007
+2007-12-09 Robert Jordan <robertj@gmx.net>
+
+ * mini-x86.c (mono_arch_emit_epilog):
+ Consider all kinds of 64-bit types. Fixes #323114.
+
2007-12-08 Zoltan Varga <vargaz@gmail.com>
* tramp-amd64.c (mono_arch_create_trampoline_code): Clean up the code a bit.
x86_mov_mem_reg (code, lmf_tls_offset, X86_ECX, 4);
} else {
/* Find a spare register */
- switch (sig->ret->type) {
+ switch (mono_type_get_underlying_type (sig->ret)->type) {
case MONO_TYPE_I8:
case MONO_TYPE_U8:
prev_lmf_reg = X86_EDI;
+2007-12-09 Robert Jordan <robertj@gmx.net>
+
+ * bug-323114.cs: Add test case for #323114.
+
2007-12-07 Zoltan Varga <vargaz@gmail.com>
* pinvoke2.cs: Fix the names of two tests.
bug-78653.cs \
bug-78656.cs \
bug-77127.cs \
+ bug-323114.cs \
bug-331958.cs \
interlocked.cs \
cross-domain.cs \
--- /dev/null
+using System;
+
+public enum Enum64 : long
+{
+ A = Int64.MaxValue,
+}
+
+delegate Enum64 EnumDelegate (Enum64 value);
+
+class Test
+{
+ static Enum64 Method (Enum64 value)
+ {
+ return value;
+ }
+
+ static int Main ()
+ {
+ EnumDelegate d = new EnumDelegate (Method);
+ Enum64 r = d.EndInvoke (d.BeginInvoke (Enum64.A, null, null));
+ return r == Enum64.A ? 0 : 1;
+ }
+}