]> git.lizzy.rs Git - rust.git/blob - src/tools/miri/tests/fail/stacked_borrows/interior_mut1.rs
Rollup merge of #101555 - jhpratt:stabilize-mixed_integer_ops, r=joshtriplett
[rust.git] / src / tools / miri / tests / fail / stacked_borrows / interior_mut1.rs
1 use std::cell::UnsafeCell;
2
3 fn main() {
4     unsafe {
5         let c = &UnsafeCell::new(UnsafeCell::new(0));
6         let inner_uniq = &mut *c.get();
7         // stack: [c: SharedReadWrite, inner_uniq: Unique]
8
9         let inner_shr = &*inner_uniq; // adds a SharedReadWrite
10         // stack: [c: SharedReadWrite, inner_uniq: Unique, inner_shr: SharedReadWrite]
11
12         *c.get() = UnsafeCell::new(1); // invalidates inner_shr
13         // stack: [c: SharedReadWrite]
14
15         let _val = *inner_shr.get(); //~ ERROR: /retag .* tag does not exist in the borrow stack/
16     }
17 }