]>
Commit | Line | Data |
---|---|---|
9c376795 | 1 | // compile-flags: -C no-prepopulate-passes -Zmir-opt-level=0 -Copt-level=0 |
b039eaaf SL |
2 | |
3 | #![crate_type = "lib"] | |
4 | ||
5 | // Hack to get the correct size for the length part in slices | |
e1599b0c | 6 | // CHECK: @helper([[USIZE:i[0-9]+]] %_1) |
b039eaaf | 7 | #[no_mangle] |
abe05a73 | 8 | pub fn helper(_: usize) { |
b039eaaf SL |
9 | } |
10 | ||
11 | // CHECK-LABEL: @ref_dst | |
12 | #[no_mangle] | |
13 | pub fn ref_dst(s: &[u8]) { | |
14 | // We used to generate an extra alloca and memcpy to ref the dst, so check that we copy | |
15 | // directly to the alloca for "x" | |
923072b8 FG |
16 | // CHECK: [[X0:%[0-9]+]] = getelementptr inbounds { {{\[0 x i8\]\*|ptr}}, [[USIZE]] }, {{.*}} %x, i32 0, i32 0 |
17 | // CHECK: store {{\[0 x i8\]\*|ptr}} %s.0, {{.*}} [[X0]] | |
18 | // CHECK: [[X1:%[0-9]+]] = getelementptr inbounds { {{\[0 x i8\]\*|ptr}}, [[USIZE]] }, {{.*}} %x, i32 0, i32 1 | |
19 | // CHECK: store [[USIZE]] %s.1, {{.*}} [[X1]] | |
9e0c209e | 20 | |
b039eaaf | 21 | let x = &*s; |
9e0c209e | 22 | &x; // keep variable in an alloca |
b039eaaf | 23 | } |