mirror of
				https://github.com/rust-lang/rust.git
				synced 2025-11-04 06:56:14 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			31 lines
		
	
	
		
			748 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
			
		
		
	
	
			31 lines
		
	
	
		
			748 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
// 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;
 | 
						|
}
 |