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

10 lines
366 B
Rust

// Using a raw invalidates derived `&mut` even for reading.
fn main() {
let mut x = 2;
let xref1 = &mut x;
let xraw = xref1 as *mut _;
let xref2 = unsafe { &mut *xraw };
let _val = unsafe { *xraw }; // use the raw again, this invalidates xref2 *even* with the special read except for uniq refs
let _illegal = *xref2; //~ ERROR borrow stack
}