36 lines
2.0 KiB
Plaintext
36 lines
2.0 KiB
Plaintext
warning: pointer-to-integer cast
|
|
--> $DIR/ptr_offset_int_plus_ptr.rs:LL:CC
|
|
|
|
|
LL | let _val = (1 as *mut u8).offset(ptr as isize);
|
|
| ^^^^^^^^^^^^^^ pointer-to-integer cast
|
|
|
|
|
= help: this program is using integer-to-pointer casts or (equivalently) `from_exposed_addr`,
|
|
= help: which means that Miri might miss pointer bugs in this program
|
|
= help: see https://doc.rust-lang.org/nightly/std/ptr/fn.from_exposed_addr.html for more details on that operation
|
|
= help: to ensure that Miri does not miss bugs in your program, use `with_addr` (https://doc.rust-lang.org/nightly/std/ptr/index.html#strict-provenance) instead
|
|
= help: you can then pass the `-Zmiri-strict-provenance` flag to Miri, to ensure you are not relying on `from_exposed_addr` semantics
|
|
= help: alternatively, the `-Zmiri-permissive-provenance` flag disables this warning
|
|
|
|
= note: inside `main` at $DIR/ptr_offset_int_plus_ptr.rs:LL:CC
|
|
|
|
error: Undefined Behavior: pointer arithmetic failed: 0x1 is not a valid pointer
|
|
--> RUSTLIB/core/src/ptr/mut_ptr.rs:LL:CC
|
|
|
|
|
LL | unsafe { intrinsics::offset(self, count) as *mut T }
|
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ pointer arithmetic failed: 0x1 is not a valid pointer
|
|
|
|
|
= help: this indicates a bug in the program: it performed an invalid operation, and caused Undefined Behavior
|
|
= help: see https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html for further information
|
|
|
|
= note: inside `std::ptr::mut_ptr::<impl *mut u8>::offset` at RUSTLIB/core/src/ptr/mut_ptr.rs:LL:CC
|
|
note: inside `main` at $DIR/ptr_offset_int_plus_ptr.rs:LL:CC
|
|
--> $DIR/ptr_offset_int_plus_ptr.rs:LL:CC
|
|
|
|
|
LL | let _val = (1 as *mut u8).offset(ptr as isize);
|
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace
|
|
|
|
error: aborting due to previous error; 1 warning emitted
|
|
|