From 6c854ef52f3b62c806a2a83432aa7aeae9268798 Mon Sep 17 00:00:00 2001 From: Zoltan Varga Date: Fri, 23 Apr 2021 22:31:50 -0400 Subject: [PATCH] [mono] Allow llvm->interp transitions on calls to Nullable.Box. Fixes https://github.com/dotnet/runtime/issues/50171. --- src/mono/mono/mini/method-to-ir.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/mono/mono/mini/method-to-ir.c b/src/mono/mono/mini/method-to-ir.c index e270a54d2af8c2..8cd1bd3605b70f 100644 --- a/src/mono/mono/mini/method-to-ir.c +++ b/src/mono/mono/mini/method-to-ir.c @@ -3327,9 +3327,11 @@ mini_emit_box (MonoCompile *cfg, MonoInst *val, MonoClass *klass, int context_us if (context_used) { if (cfg->llvm_only) { + MonoMethodSignature *sig = mono_method_signature_internal (method); MonoInst *addr = emit_get_rgctx_method (cfg, context_used, method, MONO_RGCTX_INFO_METHOD_FTNDESC); - return mini_emit_llvmonly_calli (cfg, mono_method_signature_internal (method), &val, addr); + cfg->interp_in_signatures = g_slist_prepend_mempool (cfg->mempool, cfg->interp_in_signatures, sig); + return mini_emit_llvmonly_calli (cfg, sig, &val, addr); } else { /* FIXME: What if the class is shared? We might not have to get the method address from the RGCTX. */