diff options
| author | Jacob Bramley <jacob.bramley@arm.com> | 2022-01-19 14:51:59 +0000 |
|---|---|---|
| committer | Jacob Bramley <jacob.bramley@arm.com> | 2022-01-24 16:50:10 +0000 |
| commit | e02e9582d253ffaa04c9137f732efb0b80f98907 (patch) | |
| tree | ce721b5714dd0b60c088c4e0f4534a8a4862e374 /compiler/rustc_llvm/llvm-wrapper | |
| parent | 7bc7be860f99f4a40d45b0f74e2d01b02e072357 (diff) | |
| download | rust-e02e9582d253ffaa04c9137f732efb0b80f98907.tar.gz rust-e02e9582d253ffaa04c9137f732efb0b80f98907.zip | |
Use error-on-mismatch policy for PAuth module flags.
This agrees with Clang, and avoids an error when using LTO with mixed C/Rust. LLVM considers different behaviour flags to be a mismatch, even when the flag value itself is the same. This also makes the flag setting explicit for all uses of LLVMRustAddModuleFlag.
Diffstat (limited to 'compiler/rustc_llvm/llvm-wrapper')
| -rw-r--r-- | compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp b/compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp index c21e4acbefe..dcd6327c92f 100644 --- a/compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp +++ b/compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp @@ -722,9 +722,12 @@ extern "C" bool LLVMRustIsRustLLVM() { #endif } -extern "C" void LLVMRustAddModuleFlag(LLVMModuleRef M, const char *Name, - uint32_t Value) { - unwrap(M)->addModuleFlag(Module::Warning, Name, Value); +extern "C" void LLVMRustAddModuleFlag( + LLVMModuleRef M, + Module::ModFlagBehavior MergeBehavior, + const char *Name, + uint32_t Value) { + unwrap(M)->addModuleFlag(MergeBehavior, Name, Value); } extern "C" LLVMValueRef LLVMRustMetadataAsValue(LLVMContextRef C, LLVMMetadataRef MD) { |
