diff options
Diffstat (limited to 'src/test/ui/consts/miri_unleashed/mutable_references_err.rs')
-rw-r--r-- | src/test/ui/consts/miri_unleashed/mutable_references_err.rs | 36 |
1 files changed, 0 insertions, 36 deletions
diff --git a/src/test/ui/consts/miri_unleashed/mutable_references_err.rs b/src/test/ui/consts/miri_unleashed/mutable_references_err.rs deleted file mode 100644 index 6399b122b..000000000 --- a/src/test/ui/consts/miri_unleashed/mutable_references_err.rs +++ /dev/null @@ -1,36 +0,0 @@ -// stderr-per-bitwidth -// compile-flags: -Zunleash-the-miri-inside-of-you - -use std::cell::UnsafeCell; - -// this test ensures that our mutability story is sound - -struct Meh { - x: &'static UnsafeCell<i32>, -} -unsafe impl Sync for Meh {} - -// the following will never be ok! no interior mut behind consts, because -// all allocs interned here will be marked immutable. -const MUH: Meh = Meh { //~ ERROR: it is undefined behavior to use this value - x: &UnsafeCell::new(42), -}; - -struct Synced { - x: UnsafeCell<i32>, -} -unsafe impl Sync for Synced {} - -// Make sure we also catch this behind a type-erased `dyn Trait` reference. -const SNEAKY: &dyn Sync = &Synced { x: UnsafeCell::new(42) }; -//~^ ERROR: it is undefined behavior to use this value - -// Make sure we also catch mutable references. -const BLUNT: &mut i32 = &mut 42; -//~^ ERROR: it is undefined behavior to use this value - -fn main() { - unsafe { - *MUH.x.get() = 99; - } -} |