diff options
| author | bors <bors@rust-lang.org> | 2023-02-18 03:05:11 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2023-02-18 03:05:11 +0000 |
| commit | fabfd1fd931a302c0fceb60213534252883a6743 (patch) | |
| tree | 58d183b46681bdde55809c39700838fcd6e047b8 /compiler/rustc_codegen_llvm/src/back | |
| parent | a9842c73bcd78ca4c2ec56f3e529aed79bd37df7 (diff) | |
| parent | 19714385e06f5c9281455c5ce69368f05885cdc8 (diff) | |
| download | rust-fabfd1fd931a302c0fceb60213534252883a6743.tar.gz rust-fabfd1fd931a302c0fceb60213534252883a6743.zip | |
Auto merge of #99679 - repnop:kernel-address-sanitizer, r=cuviper
Add `kernel-address` sanitizer support for freestanding targets
This PR adds support for KASan (kernel address sanitizer) instrumentation in freestanding targets. I included the minimal set of `x86_64-unknown-none`, `riscv64{imac, gc}-unknown-none-elf`, and `aarch64-unknown-none` but there's likely other targets it can be added to. (`linux_kernel_base.rs`?) KASan uses the address sanitizer attributes but has the `CompileKernel` parameter set to `true` in the pass creation.
Diffstat (limited to 'compiler/rustc_codegen_llvm/src/back')
| -rw-r--r-- | compiler/rustc_codegen_llvm/src/back/write.rs | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/compiler/rustc_codegen_llvm/src/back/write.rs b/compiler/rustc_codegen_llvm/src/back/write.rs index fb160669436..40f0594b40d 100644 --- a/compiler/rustc_codegen_llvm/src/back/write.rs +++ b/compiler/rustc_codegen_llvm/src/back/write.rs @@ -442,6 +442,10 @@ pub(crate) unsafe fn llvm_optimize( sanitize_thread: config.sanitizer.contains(SanitizerSet::THREAD), sanitize_hwaddress: config.sanitizer.contains(SanitizerSet::HWADDRESS), sanitize_hwaddress_recover: config.sanitizer_recover.contains(SanitizerSet::HWADDRESS), + sanitize_kernel_address: config.sanitizer.contains(SanitizerSet::KERNELADDRESS), + sanitize_kernel_address_recover: config + .sanitizer_recover + .contains(SanitizerSet::KERNELADDRESS), }) } else { None |
