diff --git a/rust-version b/rust-version index ec1eb6932417..e261b13e8183 100644 --- a/rust-version +++ b/rust-version @@ -1 +1 @@ -15d1f811963649c2f18a88c8e0b39958ec02fd70 +158f8d034b15e65ba8dc0d066358dd0632bfcd6e diff --git a/tests/compile-fail/box-cell-alias.rs b/tests/compile-fail/box-cell-alias.rs new file mode 100644 index 000000000000..5d63fc1d44a5 --- /dev/null +++ b/tests/compile-fail/box-cell-alias.rs @@ -0,0 +1,18 @@ +// compile-flags: -Zmiri-track-raw-pointers + +// Taken from . + +use std::cell::Cell; + +fn helper(val: Box>, ptr: *const Cell) -> u8 { + val.set(10); + unsafe { (*ptr).set(20); } //~ ERROR does not have an appropriate item in the borrow stack + val.get() +} + +fn main() { + let val: Box> = Box::new(Cell::new(25)); + let ptr: *const Cell = &*val; + let res = helper(val, ptr); + assert_eq!(res, 20); +}