summaryrefslogtreecommitdiffstats
path: root/tests/ui/consts/const-eval/ub-enum-overwrite.rs
blob: 086a1001d11ca96d38c704b3f67c460b6a3f2280 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#![feature(const_mut_refs)]

enum E {
    A(u8),
    B,
}

const _: u8 = {
    let mut e = E::A(1);
    let p = if let E::A(x) = &mut e { x as *mut u8 } else { unreachable!() };
    // Make sure overwriting `e` uninitializes other bytes
    e = E::B;
    unsafe { *p }
    //~^ ERROR evaluation of constant value failed
    //~| uninitialized
};

fn main() {}