summary refs log tree commit diff
path: root/src/tools/miri/tests/fail/modifying_constants.rs
blob: 2783ebd155ff5d79e5b6bda54dcb7e3e331b13ba (plain)
1
2
3
4
5
6
7
8
9
// This should fail even without validation/SB
//@compile-flags: -Zmiri-disable-validation -Zmiri-disable-stacked-borrows

fn main() {
    let x = &1; // the `&1` is promoted to a constant, but it used to be that only the pointer is marked static, not the pointee
    let y = unsafe { &mut *(x as *const i32 as *mut i32) };
    *y = 42; //~ ERROR: read-only
    assert_eq!(*x, 42);
}