// Verifies that no_sanitize attribute prevents inlining when // given sanitizer is enabled, but has no effect on inlining otherwise. // // needs-sanitizer-address // needs-sanitizer-leak // revisions: ASAN LSAN //[ASAN] compile-flags: -Zsanitizer=address -C opt-level=3 -Z mir-opt-level=4 //[LSAN] compile-flags: -Zsanitizer=leak -C opt-level=3 -Z mir-opt-level=4 #![crate_type="lib"] #![feature(no_sanitize)] // ASAN-LABEL: define void @test // ASAN: call {{.*}} @random_inline // ASAN: } // // LSAN-LABEL: define void @test // LSAN-NO: call // LSAN: } #[no_mangle] pub fn test(n: &mut u32) { random_inline(n); } #[no_sanitize(address)] #[inline] #[no_mangle] pub fn random_inline(n: &mut u32) { *n = 42; }