//@revisions: stack tree | |
//@[tree]compile-flags: -Zmiri-tree-borrows | |
#![allow(invalid_reference_casting)] | |
fn main() { | |
let target = Box::new(42); // has an implicit raw | |
let xref = &*target; | |
{ | |
let x: *mut u32 = xref as *const _ as *mut _; | |
unsafe { *x = 42 }; | |
//~[stack]^ ERROR: /write access .* tag only grants SharedReadOnly permission/ | |
//~[tree]| ERROR: /write access through .* is forbidden/ | |
} | |
let _x = *xref; | |
} |