Skip to content
/ rustc Public
forked from rust-lang/rust

Commit 4dd462d

Browse files
committed
add codegen test for rust-lang#110797
1 parent dc6d9ed commit 4dd462d

File tree

1 file changed

+27
-0
lines changed

1 file changed

+27
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
//@ compile-flags: -O
2+
// XXX: The x86-64 assembly get optimized correclty. But llvm-ir output is not until llvm 18?
3+
//@ min-llvm-version: 18
4+
5+
#![crate_type = "lib"]
6+
7+
pub enum K{
8+
A(Box<[i32]>),
9+
B(Box<[u8]>),
10+
C(Box<[String]>),
11+
D(Box<[u16]>),
12+
}
13+
14+
#[no_mangle]
15+
// CHECK-LABEL: @get_len
16+
// CHECK: getelementptr inbounds
17+
// CHECK-NEXT: load
18+
// CHECK-NEXT: ret i64
19+
// CHECK-NOT: switch
20+
pub fn get_len(arg: &K)->usize{
21+
match arg {
22+
K::A(ref lst)=>lst.len(),
23+
K::B(ref lst)=>lst.len(),
24+
K::C(ref lst)=>lst.len(),
25+
K::D(ref lst)=>lst.len(),
26+
}
27+
}

0 commit comments

Comments
 (0)