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

fn main() {}