From f396c3496a905451bcb4649c44c6d2e627690d05 Mon Sep 17 00:00:00 2001 From: Zoltan Varga Date: Tue, 8 Mar 2022 10:17:55 -0500 Subject: [PATCH] [mono][jit] Disable deopt in gsharedvt methods. (#66322) The deopt code can't handle the gsharedvt return value convention. Fixes https://github.com/dotnet/runtime/issues/66319. --- src/mono/mono/mini/mini.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mono/mono/mini/mini.c b/src/mono/mono/mini/mini.c index 16d9103..6de9251 100644 --- a/src/mono/mono/mini/mini.c +++ b/src/mono/mono/mini/mini.c @@ -3294,7 +3294,7 @@ mini_method_compile (MonoMethod *method, guint32 opts, JitFlags flags, int parts return cfg; } - if (cfg->llvm_only && cfg->interp && !cfg->interp_entry_only && header->num_clauses) { + if (cfg->llvm_only && cfg->interp && !cfg->interp_entry_only && !cfg->gsharedvt && header->num_clauses) { cfg->deopt = TRUE; /* Can't reconstruct inlined state */ cfg->disable_inline = TRUE; -- 2.7.4