diff --git a/tests/fail/provenance/ptr_int_unexposed.rs b/tests/fail/provenance/ptr_int_unexposed.rs index 8a336e43ba..f6026f3ab9 100644 --- a/tests/fail/provenance/ptr_int_unexposed.rs +++ b/tests/fail/provenance/ptr_int_unexposed.rs @@ -1,12 +1,12 @@ -// compile-flags: -Zmiri-permissive-provenance -Zmiri-disable-stacked-borrows -Zmiri-allow-ptr-int-transmute +// compile-flags: -Zmiri-permissive-provenance -Zmiri-disable-stacked-borrows +#![feature(strict_provenance)] fn main() { let x: i32 = 3; let x_ptr = &x as *const i32; - // TODO: switch this to addr() once we intrinsify it - let x_usize: usize = unsafe { std::mem::transmute(x_ptr) }; + let x_usize: usize = x_ptr.addr(); // Cast back a pointer that did *not* get exposed. - let ptr = x_usize as *const i32; + let ptr = std::ptr::from_exposed_addr::(x_usize); assert_eq!(unsafe { *ptr }, 3); //~ ERROR Undefined Behavior: dereferencing pointer failed }