Fix for 'not fully instantiated' Crossgen2 issue bucket (#43054)
authorTomáš Rylek <trylek@microsoft.com>
Tue, 6 Oct 2020 17:31:06 +0000 (19:31 +0200)
committerGitHub <noreply@github.com>
Tue, 6 Oct 2020 17:31:06 +0000 (19:31 +0200)
commit57d2ea5a2806a041a6967f254891202ab3da0ec8
tree744f5d1e98766cfd9d4afdea9037380ecba7375a
parente18d25e1a81d359097371615ff1a3407597c0bb3
Fix for 'not fully instantiated' Crossgen2 issue bucket (#43054)

Around September 25 several dozens of Crossgen2 tests started
failing with a runtime error around incomplete instantiation of
GetArrayDataReference. I believe that for generic methods we
should skip the METHOD_ENTRY_DEF_TOKEN shortcut, otherwise we
lose the instantiation information and cause the runtime problem.

I originally thought this may be related to JanK's function
pointer changes but I no longer believe it is the case
(my apologies to Jan for the false accusation). I rather think
that some ambient code change caused a subtle difference in IL
encoding of access to the method that started tripping the
"shortcut" code path.

Thanks

Tomas
src/coreclr/src/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/MethodFixupSignature.cs