mirror of
				https://github.com/rust-lang/rust.git
				synced 2025-11-03 22:49:17 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			52 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			52 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
error: under strict provenance it is considered bad style to cast pointer `*const u8` to integer `usize`
 | 
						|
  --> $DIR/lint-strict-provenance-lossy-casts.rs:6:23
 | 
						|
   |
 | 
						|
LL |     let addr: usize = &x as *const u8 as usize;
 | 
						|
   |                       ^^^^^^^^^^^^^^^^^^^^^^^^
 | 
						|
   |
 | 
						|
   = help: if you can't comply with strict provenance and need to expose the pointer provenance you can use `.expose_provenance()` instead
 | 
						|
note: the lint level is defined here
 | 
						|
  --> $DIR/lint-strict-provenance-lossy-casts.rs:2:9
 | 
						|
   |
 | 
						|
LL | #![deny(lossy_provenance_casts)]
 | 
						|
   |         ^^^^^^^^^^^^^^^^^^^^^^
 | 
						|
help: use `.addr()` to obtain the address of a pointer
 | 
						|
   |
 | 
						|
LL |     let addr: usize = (&x as *const u8).addr();
 | 
						|
   |                       +               ~~~~~~~~
 | 
						|
 | 
						|
error: under strict provenance it is considered bad style to cast pointer `*const u8` to integer `u32`
 | 
						|
  --> $DIR/lint-strict-provenance-lossy-casts.rs:9:22
 | 
						|
   |
 | 
						|
LL |     let addr_32bit = &x as *const u8 as u32;
 | 
						|
   |                      ^^^^^^^^^^^^^^^^^^^^^^
 | 
						|
   |
 | 
						|
   = help: if you can't comply with strict provenance and need to expose the pointer provenance you can use `.expose_provenance()` instead
 | 
						|
help: use `.addr()` to obtain the address of a pointer
 | 
						|
   |
 | 
						|
LL |     let addr_32bit = (&x as *const u8).addr() as u32;
 | 
						|
   |                      +               ~~~~~~~~~~~~~~~
 | 
						|
 | 
						|
error: under strict provenance it is considered bad style to cast pointer `*const u8` to integer `usize`
 | 
						|
  --> $DIR/lint-strict-provenance-lossy-casts.rs:14:20
 | 
						|
   |
 | 
						|
LL |     let ptr_addr = ptr as usize;
 | 
						|
   |                    ^^^---------
 | 
						|
   |                       |
 | 
						|
   |                       help: use `.addr()` to obtain the address of a pointer: `.addr()`
 | 
						|
   |
 | 
						|
   = help: if you can't comply with strict provenance and need to expose the pointer provenance you can use `.expose_provenance()` instead
 | 
						|
 | 
						|
error: under strict provenance it is considered bad style to cast pointer `*const u8` to integer `u32`
 | 
						|
  --> $DIR/lint-strict-provenance-lossy-casts.rs:16:26
 | 
						|
   |
 | 
						|
LL |     let ptr_addr_32bit = ptr as u32;
 | 
						|
   |                          ^^^-------
 | 
						|
   |                             |
 | 
						|
   |                             help: use `.addr()` to obtain the address of a pointer: `.addr() as u32`
 | 
						|
   |
 | 
						|
   = help: if you can't comply with strict provenance and need to expose the pointer provenance you can use `.expose_provenance()` instead
 | 
						|
 | 
						|
error: aborting due to 4 previous errors
 | 
						|
 |