Don't inline StelemRef_Helper. (#33319)
authorEugene Rozenfeld <erozen@microsoft.com>
Sat, 7 Mar 2020 04:49:18 +0000 (20:49 -0800)
committerGitHub <noreply@github.com>
Sat, 7 Mar 2020 04:49:18 +0000 (20:49 -0800)
Under some jit stress modes the jit tries to inline StelemRef_Helper into
StelemRef. StelemRef is jitted very early and the jit is not yet prepared
to handle this inline.

Fixes #33298.

src/coreclr/src/System.Private.CoreLib/src/System/Runtime/CompilerServices/CastHelpers.cs

index 660b96e..74148dd 100644 (file)
@@ -558,6 +558,7 @@ namespace System.Runtime.CompilerServices
         [DebuggerHidden]
         [StackTraceHidden]
         [DebuggerStepThrough]
+        [MethodImpl(MethodImplOptions.NoInlining)]
         private static void StelemRef_Helper(ref object? element, void* elementType, object obj)
         {
             CastResult result = TryGet((nuint)RuntimeHelpers.GetMethodTable(obj), (nuint)elementType);