[Ironruby-core] Regression ? "Invalid IL code in (wrapper dynamic-method)"

Jb Evain jb at nurv.fr
Fri Feb 27 03:08:59 EST 2009


Hey Jim,

On 2/27/09, Jim Deville <jdeville at microsoft.com> wrote:
> Can anyone confirm if this is only a Mono problem? Also, what platform x86
> or x64 (doubt it makes a difference, but I want to be certain)? I can’t
> repro on .NET.

Let say it's a shared problem :)

The issue comes from our verifier, which, well, verifies the whole
method body. It's shocking on a dynamic method which looks like:

ldc.i4.1
brfalse target
ldarg.3
call foo
ret
pop

target:

ldarg.1
call bar
bla bla bla
...

The issue is the pop, in between the ret and the jump target. .net's
JIT will optimize it away, and not even verify it, as it will never be
executed.

But our verifier, well, verifies the whole method body, hence the
InvalidProgramException.

We've had this issue already with some obfuscators injecting plain non
sense, so I guess at some point we'll fix it on our side. It would be
nice if IronRuby could emit nice and verifiable code though.

-- 
Jb Evain  <jb at nurv.fr>


More information about the Ironruby-core mailing list