Fix crossgen2 to fix several Loader tests (dotnet/coreclr#27022)
authorJan Vorlicek <janvorli@microsoft.com>
Fri, 4 Oct 2019 09:05:30 +0000 (11:05 +0200)
committerGitHub <noreply@github.com>
Fri, 4 Oct 2019 09:05:30 +0000 (11:05 +0200)
commitf7043861c391404369307db43b1d8aea5b9c8931
treefb86b8100c3f8f311ae55ff15374f4da30e0c358
parent9bf2c148737f2feda7fce5da015d5b785c66ffc7
Fix crossgen2 to fix several Loader tests (dotnet/coreclr#27022)

Six Loader\classloader\TypeGeneratorTests (Generated612, Generated613,
Generated614, Generated681, Generated682 and Generated683) were failing
with System.BadImageFormatException. While investigating the issue, I've
found that it was caused by a fix made few months ago. That fix fixed
several hundreds of tests from the Loader category, but broken these
six. The fix was made in getCallInfo and it doesn't correspond to what
we have in the old crossgen.
This change reverts that fix and fixes all the issues by using proper
token at some places and converting MemberRefs and MethodSpecs at few
places to MethodDefs, exacty the same way like the old crossgen does.

Commit migrated from https://github.com/dotnet/coreclr/commit/335dcbdb99fbb0217d8d9d52b6e0c582eaef6716
src/coreclr/src/tools/crossgen2/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/MethodFixupSignature.cs
src/coreclr/src/tools/crossgen2/ILCompiler.ReadyToRun/JitInterface/CorInfoImpl.ReadyToRun.cs