]>
Commit | Line | Data |
---|---|---|
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"] | |
21 | trait Sized {} | |
22 | ||
23 | #[lang = "copy"] | |
24 | trait Copy {} | |
25 | ||
26 | impl 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)] | |
35 | pub 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: } | |
45 | pub fn sanitized(b: &mut u8) -> u8 { | |
46 | *b | |
47 | } |