]> git.lizzy.rs Git - rust.git/blob - tests/codegen/match-optimizes-away.rs
Rollup merge of #107731 - RalfJung:interpret-discriminant, r=cjgillot
[rust.git] / tests / codegen / match-optimizes-away.rs
1 //
2 // no-system-llvm
3 // compile-flags: -O
4 #![crate_type="lib"]
5
6 pub enum Three { A, B, C }
7
8 #[repr(u16)]
9 pub enum Four { A, B, C, D }
10
11 #[no_mangle]
12 pub fn three_valued(x: Three) -> Three {
13     // CHECK-LABEL: @three_valued
14     // CHECK-NEXT: {{^.*:$}}
15     // CHECK-NEXT: ret i8 %0
16     match x {
17         Three::A => Three::A,
18         Three::B => Three::B,
19         Three::C => Three::C,
20     }
21 }
22
23 #[no_mangle]
24 pub fn four_valued(x: Four) -> Four {
25     // CHECK-LABEL: @four_valued
26     // CHECK-NEXT: {{^.*:$}}
27     // CHECK-NEXT: ret i16 %0
28     match x {
29         Four::A => Four::A,
30         Four::B => Four::B,
31         Four::C => Four::C,
32         Four::D => Four::D,
33     }
34 }