From: Ralf Jung Date: Tue, 24 May 2022 15:49:11 +0000 (+0200) Subject: with permissive-provenance set, we already treat ptr::invalid correctly X-Git-Url: https://git.lizzy.rs/?a=commitdiff_plain;h=fcf3bc2335331e7c79e7e7ae78265e2db4637748;p=rust.git with permissive-provenance set, we already treat ptr::invalid correctly --- diff --git a/tests/compile-fail/provenance/ptr_invalid.rs b/tests/compile-fail/provenance/ptr_invalid.rs new file mode 100644 index 00000000000..b371103e6b6 --- /dev/null +++ b/tests/compile-fail/provenance/ptr_invalid.rs @@ -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::(xptr.expose_addr()); + let _val = unsafe { *xptr_invalid }; //~ ERROR is not a valid pointer +}