Auto merge of #2153 - RalfJung:ptr-invalid, r=RalfJung

with permissive-provenance set, we already treat ptr::invalid correctly

(same for strict provenance, but there it is not surprising)
This commit is contained in:
bors 2022-05-24 15:51:23 +00:00
commit 5063880779

View File

@ -0,0 +1,10 @@
// compile-flags: -Zmiri-permissive-provenance
#![feature(strict_provenance)]
// Ensure that a `ptr::invalid` ptr is truly invalid.
fn main() {
let x = 42;
let xptr = &x as *const i32;
let xptr_invalid = std::ptr::invalid::<i32>(xptr.expose_addr());
let _val = unsafe { *xptr_invalid }; //~ ERROR is not a valid pointer
}