rust/tests/compile-fail/stacked_borrows/alias_through_mutation.rs
Ralf Jung ef52be031c adjust compile-fail error messages
This also passes miri-test-libstd!
2019-04-17 16:02:57 +02:00

14 lines
459 B
Rust

// This makes a ref that was passed to us via &mut alias with things it should not alias with
fn retarget(x: &mut &u32, target: &mut u32) {
unsafe { *x = &mut *(target as *mut _); }
}
fn main() {
let target = &mut 42;
let mut target_alias = &42; // initial dummy value
retarget(&mut target_alias, target);
// now `target_alias` points to the same thing as `target`
*target = 13;
let _val = *target_alias; //~ ERROR borrow stack
}