]> git.proxmox.com Git - rustc.git/blame - tests/codegen/sanitizer/kasan-emits-instrumentation.rs
New upstream version 1.75.0+dfsg1
[rustc.git] / tests / codegen / sanitizer / kasan-emits-instrumentation.rs
CommitLineData
9ffffee4
FG
1// Verifies that `-Zsanitizer=kernel-address` emits sanitizer instrumentation.
2
ed00b5ec 3// compile-flags: -Zsanitizer=kernel-address -Copt-level=0
9ffffee4
FG
4// revisions: aarch64 riscv64imac riscv64gc x86_64
5//[aarch64] compile-flags: --target aarch64-unknown-none
6//[aarch64] needs-llvm-components: aarch64
7//[riscv64imac] compile-flags: --target riscv64imac-unknown-none-elf
8//[riscv64imac] needs-llvm-components: riscv
9//[riscv64imac] min-llvm-version: 16
10//[riscv64gc] compile-flags: --target riscv64gc-unknown-none-elf
11//[riscv64gc] needs-llvm-components: riscv
12//[riscv64gc] min-llvm-version: 16
13//[x86_64] compile-flags: --target x86_64-unknown-none
14//[x86_64] needs-llvm-components: x86
15
16#![crate_type = "rlib"]
17#![feature(no_core, no_sanitize, lang_items)]
18#![no_core]
19
20#[lang = "sized"]
21trait Sized {}
22
23#[lang = "copy"]
24trait Copy {}
25
26impl Copy for u8 {}
27
add651ee 28// CHECK-LABEL: ; kasan_emits_instrumentation::unsanitized
9ffffee4
FG
29// CHECK-NEXT: ; Function Attrs:
30// CHECK-NOT: sanitize_address
31// CHECK: start:
32// CHECK-NOT: call void @__asan_report_load
33// CHECK: }
34#[no_sanitize(address)]
35pub fn unsanitized(b: &mut u8) -> u8 {
36 *b
37}
38
add651ee 39// CHECK-LABEL: ; kasan_emits_instrumentation::sanitized
9ffffee4
FG
40// CHECK-NEXT: ; Function Attrs:
41// CHECK: sanitize_address
42// CHECK: start:
43// CHECK: call void @__asan_report_load
44// CHECK: }
45pub fn sanitized(b: &mut u8) -> u8 {
46 *b
47}