Skip to content

Commit

Permalink
addr no longer exposes :)
Browse files Browse the repository at this point in the history
  • Loading branch information
RalfJung committed Jun 3, 2022
1 parent 2d24b1b commit 76640ff
Showing 1 changed file with 4 additions and 4 deletions.
8 changes: 4 additions & 4 deletions tests/fail/provenance/ptr_int_unexposed.rs
Original file line number Diff line number Diff line change
@@ -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::<i32>(x_usize);
assert_eq!(unsafe { *ptr }, 3); //~ ERROR Undefined Behavior: dereferencing pointer failed
}

0 comments on commit 76640ff

Please sign in to comment.