summaryrefslogtreecommitdiffstats
path: root/tests/codegen/issues/issue-73031.rs
blob: a09c4bcfbeac539242fd388fcea324cb266afe37 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// compile-flags: -O
#![crate_type = "lib"]

// Test that LLVM can eliminate the unreachable `All::None` branch.

pub enum All {
    None,
    Foo,
    Bar,
}

// CHECK-LABEL: @issue_73031
#[no_mangle]
pub fn issue_73031(a: &mut All, q: i32) -> i32 {
    *a = if q == 5 {
        All::Foo
    } else {
        All::Bar
    };
    match *a {
        // CHECK-NOT: panic
        All::None => panic!(),
        All::Foo => 1,
        All::Bar => 2,
    }
}