[Mono-bugs] [Bug 577984] Mono AOT can not handle reference to parameter type return values.
bugzilla_noreply at novell.com
bugzilla_noreply at novell.com
Wed Feb 10 20:11:11 EST 2010
http://bugzilla.novell.com/show_bug.cgi?id=577984
http://bugzilla.novell.com/show_bug.cgi?id=577984#c3
Miguel de Icaza <miguel at novell.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Summary|Ahead-of-time compiler |Mono AOT can not handle
|getting "Can't handle as |reference to parameter type
|return value 0x1e" |return values.
--- Comment #3 from Miguel de Icaza <miguel at novell.com> 2010-02-11 01:11:11 UTC ---
I also noticed that this runs if you run with the JIT, but does not run if you
run with AOT. I updated the sample so that the method is actually invoked.
On JIT execution the get_call_info method determines that the type is a
MONO_TYPE_GENERICINST, but when running with AOT the value is determined to be
MONO_TYPE_MVAR.
ilasm e.il
mono e.exe <- throws an exception, as expected
mono --aot e.exe <- aborts the Mono runtime
assembly extern mscorlib
{
.ver 2:0:0:0
.publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4..
}
assembly 'e'
{
.hash algorithm 0x00008004
.ver 0:0:0:0
}
module e.exe // GUID = {1DBE33D3-F38A-45C2-AB55-F57FAE1EBB5A}
custom instance void class
[mscorlib]System.Security.UnverifiableCodeAttribute::'.ctor'() = (01 00 00 00
) // ....
.class private auto ansi beforefieldinit X
extends [mscorlib]System.Object
{
.method private static hidebysig
default void Main () cil managed
{
.entrypoint
.maxstack 1
.locals init (
int32 V_0)
IL_0000: call !!0& class X::Foo<int32> ()
IL_0005: pop
IL_0006: ret
} // end of method X::Main
// method line 3
.method private static hidebysig
default !!T& Foo<T> () cil managed
{
.maxstack 8
IL_0000: newobj instance void class [mscorlib]System.Exception::'.ctor'()
IL_0005: throw
} // end of method X::Foo
} // end of class X
--
Configure bugmail: http://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
More information about the mono-bugs
mailing list