File tree Expand file tree Collapse file tree 1 file changed +26
-0
lines changed
compiler/rustc_llvm/llvm-wrapper Expand file tree Collapse file tree 1 file changed +26
-0
lines changed Original file line number Diff line number Diff line change 51
51
//
52
52
// ===----------------------------------------------------------------------===
53
53
54
+ // Define TailCallKind enum values to match LLVM's
55
+ enum LLVMRustTailCallKind {
56
+ LLVMRustTailCallKindNone = 0 ,
57
+ LLVMRustTailCallKindTail = 1 ,
58
+ LLVMRustTailCallKindMustTail = 2 ,
59
+ LLVMRustTailCallKindNoTail = 3
60
+ };
61
+
54
62
using namespace llvm ;
55
63
using namespace llvm ::sys;
56
64
using namespace llvm ::object;
@@ -1949,3 +1957,21 @@ extern "C" void LLVMRustSetNoSanitizeHWAddress(LLVMValueRef Global) {
1949
1957
MD.NoHWAddress = true ;
1950
1958
GV.setSanitizerMetadata (MD);
1951
1959
}
1960
+
1961
+ extern " C" void LLVMRustSetTailCallKind (LLVMValueRef Call, LLVMRustTailCallKind Kind) {
1962
+ CallInst *CI = unwrap<CallInst>(Call);
1963
+ switch (Kind) {
1964
+ case LLVMRustTailCallKindNone:
1965
+ CI->setTailCallKind (CallInst::TCK_None);
1966
+ break ;
1967
+ case LLVMRustTailCallKindTail:
1968
+ CI->setTailCallKind (CallInst::TCK_Tail);
1969
+ break ;
1970
+ case LLVMRustTailCallKindMustTail:
1971
+ CI->setTailCallKind (CallInst::TCK_MustTail);
1972
+ break ;
1973
+ case LLVMRustTailCallKindNoTail:
1974
+ CI->setTailCallKind (CallInst::TCK_NoTail);
1975
+ break ;
1976
+ }
1977
+ }
You can’t perform that action at this time.
0 commit comments