//@ compile-flags: -O #![crate_type = "lib"] // Test that LLVM can eliminate the unreachable `Variant::Zero` branch. #[derive(Copy, Clone, Eq, PartialEq)] pub enum Variant { Zero, One, Two, } extern "C" { fn exf1(); fn exf2(); } pub static mut GLOBAL: Variant = Variant::Zero; // CHECK-LABEL: @issue_77812 #[no_mangle] pub unsafe fn issue_77812() { let g = GLOBAL; if g != Variant::Zero { match g { Variant::One => exf1(), Variant::Two => exf2(), // CHECK-NOT: panic Variant::Zero => panic!(), } } }