diff options
| author | kxxt <rsworktech@outlook.com> | 2024-01-28 18:38:41 +0800 |
|---|---|---|
| committer | kxxt <rsworktech@outlook.com> | 2024-04-09 05:25:51 +0200 |
| commit | f19c48e7a83ad146f461adfdf1b4288eabbecbc8 (patch) | |
| tree | 2e75cc3d75d9ec95bd6c563297f7840146ddefc8 /compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp | |
| parent | f65f84feb0c299ba926f57b998f03f61d3382464 (diff) | |
| download | rust-f19c48e7a83ad146f461adfdf1b4288eabbecbc8.tar.gz rust-f19c48e7a83ad146f461adfdf1b4288eabbecbc8.zip | |
Set target-abi module flag for RISC-V targets
Fixes cross-language LTO on RISC-V targets (Fixes #121924)
Diffstat (limited to 'compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp')
| -rw-r--r-- | compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp b/compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp index 8ec1f5a99e7..8d43fe6052a 100644 --- a/compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp +++ b/compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp @@ -817,7 +817,7 @@ extern "C" uint32_t LLVMRustVersionMinor() { return LLVM_VERSION_MINOR; } extern "C" uint32_t LLVMRustVersionMajor() { return LLVM_VERSION_MAJOR; } -extern "C" void LLVMRustAddModuleFlag( +extern "C" void LLVMRustAddModuleFlagU32( LLVMModuleRef M, Module::ModFlagBehavior MergeBehavior, const char *Name, @@ -825,6 +825,15 @@ extern "C" void LLVMRustAddModuleFlag( unwrap(M)->addModuleFlag(MergeBehavior, Name, Value); } +extern "C" void LLVMRustAddModuleFlagString( + LLVMModuleRef M, + Module::ModFlagBehavior MergeBehavior, + const char *Name, + const char *Value) { + llvm::LLVMContext &Ctx = unwrap(M)->getContext(); + unwrap(M)->addModuleFlag(MergeBehavior, Name, llvm::MDString::get(Ctx, Value)); +} + extern "C" bool LLVMRustHasModuleFlag(LLVMModuleRef M, const char *Name, size_t Len) { return unwrap(M)->getModuleFlag(StringRef(Name, Len)) != nullptr; |
