add extern "rust-tail" calling convention#157016
Draft
folkertdev wants to merge 1 commit into
Draft
Conversation
This comment has been minimized.
This comment has been minimized.
bjorn3
reviewed
May 27, 2026
| CanonAbi::RustPreserveNone => default_call_conv, | ||
|
|
||
| // Cranelift doesn't currently have anything for this. | ||
| CanonAbi::RustTail => default_call_conv, |
Member
There was a problem hiding this comment.
Please emit an error as a fallback to extern "C" would not be ABI compatible with LLVM.
Contributor
Author
There was a problem hiding this comment.
Isn't the same true for RustPreserveNone? I can adjust that one too.
b188b60 to
4d12202
Compare
bjorn3
reviewed
May 27, 2026
| // Cranelift doesn't currently have anything for this. | ||
| CanonAbi::RustPreserveNone => default_call_conv, | ||
| CanonAbi::RustPreserveNone | CanonAbi::RustTail => { | ||
| sess.dcx().fatal("call conv {c:?} is LLVM-specific") |
Member
There was a problem hiding this comment.
Suggested change
| sess.dcx().fatal("call conv {c:?} is LLVM-specific") | |
| sess.dcx().fatal(format!("call conv {c:?} is LLVM-specific")) |
Collaborator
|
The job Click to see the possible cause of the failure (guessed by this bot) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Maps to LLVM's
tailccand hence inherits all its problems.This calling convention at least compiles on:
x86_64aarch64s390xloongarch64For most backends LLVM does not have support and fails loudly. At least for
loongarch64I noticed that LLVM does not actually have any tests for it.