summary refs log tree commit diff
path: root/tests/ui/consts/const-eval/ub-enum-overwrite.rs
blob: e37c25718f8e8d18f5fab72518c986b7a531d286 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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
    //~| NOTE uninitialized
};

fn main() {}