[llvm] Handle recursive calls as a direct call. (mono/mono#16944)
authorZoltan Varga <vargaz@gmail.com>
Fri, 20 Sep 2019 01:43:49 +0000 (21:43 -0400)
committerGitHub <noreply@github.com>
Fri, 20 Sep 2019 01:43:49 +0000 (21:43 -0400)
Fixes https://github.com/mono/mono/issues/16943.

Commit migrated from https://github.com/mono/mono/commit/c730a2a2e35682121d69d3c76cbd7af371f01c41

src/mono/mono/mini/mini-llvm.c

index 5a9900c..f190ef4 100644 (file)
@@ -3826,6 +3826,8 @@ process_call (EmitContext *ctx, MonoBasicBlock *bb, LLVMBuilderRef *builder_ref,
                                        set_failure (ctx, "can't encode patch");
                                        return;
                                }
+                       } else if (cfg->method == call->method) {
+                               callee = ctx->lmethod;
                        } else {
                                ERROR_DECL (error);
                                static int tramp_index;