// Verifies that no_sanitize attribute can be used to // selectively disable sanitizer instrumentation. // //@ needs-sanitizer-address //@ compile-flags: -Zsanitizer=address -Ctarget-feature=-crt-static -Copt-level=0 #![crate_type = "lib"] #![feature(no_sanitize)] // CHECK-LABEL: ; no_sanitize::unsanitized // CHECK-NEXT: ; Function Attrs: // CHECK-NOT: sanitize_address // CHECK: start: // CHECK-NOT: call void @__asan_report_load // CHECK: } #[no_sanitize(address)] pub fn unsanitized(b: &mut u8) -> u8 { *b } // CHECK-LABEL: ; no_sanitize::sanitized // CHECK-NEXT: ; Function Attrs: // CHECK: sanitize_address // CHECK: start: // CHECK: call void @__asan_report_load // CHECK: } pub fn sanitized(b: &mut u8) -> u8 { *b }