rust/tests/fail/stacked_borrows/illegal_write1.rs

12 lines
291 B
Rust
Raw Normal View History

2018-10-19 18:38:23 +02:00
fn main() {
let target = Box::new(42); // has an implicit raw
2018-11-15 19:49:00 +01:00
let xref = &*target;
{
let x: *mut u32 = xref as *const _ as *mut _;
unsafe {
2022-06-21 11:40:02 -07:00
*x = 42; // invalidates shared ref, activates raw
}
2018-11-15 19:49:00 +01:00
}
let _x = *xref; //~ ERROR borrow stack
2018-10-19 18:38:23 +02:00
}