[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