]> git.proxmox.com Git - rustc.git/blame - tests/codegen/match-optimizes-away.rs
New upstream version 1.69.0+dfsg1
[rustc.git] / tests / codegen / match-optimizes-away.rs
CommitLineData
abe05a73
XL
1//
2// no-system-llvm
3// compile-flags: -O
4#![crate_type="lib"]
5
ff7c6d11 6pub enum Three { A, B, C }
abe05a73 7
a1dfa0c6 8#[repr(u16)]
ff7c6d11 9pub enum Four { A, B, C, D }
abe05a73
XL
10
11#[no_mangle]
12pub fn three_valued(x: Three) -> Three {
13 // CHECK-LABEL: @three_valued
14 // CHECK-NEXT: {{^.*:$}}
15 // CHECK-NEXT: ret i8 %0
16 match x {
ff7c6d11
XL
17 Three::A => Three::A,
18 Three::B => Three::B,
19 Three::C => Three::C,
abe05a73
XL
20 }
21}
22
23#[no_mangle]
24pub fn four_valued(x: Four) -> Four {
25 // CHECK-LABEL: @four_valued
26 // CHECK-NEXT: {{^.*:$}}
a1dfa0c6 27 // CHECK-NEXT: ret i16 %0
abe05a73 28 match x {
ff7c6d11
XL
29 Four::A => Four::A,
30 Four::B => Four::B,
31 Four::C => Four::C,
32 Four::D => Four::D,
abe05a73
XL
33 }
34}