diff options
| author | Matthias Krüger <matthias.krueger@famsik.de> | 2023-08-08 21:44:43 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-08-08 21:44:43 +0200 |
| commit | c097e48082e3453bf7670c79bb1b282a9e900e1d (patch) | |
| tree | 7a0be468cb0a31c8b6bdecd5f6584d6334728af0 /compiler/rustc_codegen_llvm/src/llvm | |
| parent | 095619aadf96a10101aef1f10c7ae35bfaa41a11 (diff) | |
| parent | f837c48f0d8da1a205b7ab97846bc90f8d497271 (diff) | |
| download | rust-c097e48082e3453bf7670c79bb1b282a9e900e1d.tar.gz rust-c097e48082e3453bf7670c79bb1b282a9e900e1d.zip | |
Rollup merge of #113593 - rcvalle:rust-cfi-fix-90546, r=wesleywiser
CFI: Fix error compiling core with LLVM CFI enabled Fix #90546 by filtering out global value function pointer types from the type tests, and adding the LowerTypeTests pass to the rustc LTO optimization pipelines.
Diffstat (limited to 'compiler/rustc_codegen_llvm/src/llvm')
| -rw-r--r-- | compiler/rustc_codegen_llvm/src/llvm/ffi.rs | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/compiler/rustc_codegen_llvm/src/llvm/ffi.rs b/compiler/rustc_codegen_llvm/src/llvm/ffi.rs index 7fb4d3227db..112b4a173a5 100644 --- a/compiler/rustc_codegen_llvm/src/llvm/ffi.rs +++ b/compiler/rustc_codegen_llvm/src/llvm/ffi.rs @@ -475,6 +475,8 @@ pub enum OptStage { pub struct SanitizerOptions { pub sanitize_address: bool, pub sanitize_address_recover: bool, + pub sanitize_cfi: bool, + pub sanitize_kcfi: bool, pub sanitize_memory: bool, pub sanitize_memory_recover: bool, pub sanitize_memory_track_origins: c_int, @@ -894,6 +896,7 @@ extern "C" { pub fn LLVMRustGlobalAddMetadata<'a>(Val: &'a Value, KindID: c_uint, Metadata: &'a Metadata); pub fn LLVMValueAsMetadata(Node: &Value) -> &Metadata; pub fn LLVMIsAFunction(Val: &Value) -> Option<&Value>; + pub fn LLVMRustIsNonGVFunctionPointerTy(Val: &Value) -> bool; // Operations on constants of any type pub fn LLVMConstNull(Ty: &Type) -> &Value; @@ -2138,6 +2141,7 @@ extern "C" { TM: &'a TargetMachine, OptLevel: PassBuilderOptLevel, OptStage: OptStage, + IsLinkerPluginLTO: bool, NoPrepopulatePasses: bool, VerifyIR: bool, UseThinLTOBuffers: bool, |
