diff options
Diffstat (limited to 'tests/codegen/issues/issue-111603.rs')
| -rw-r--r-- | tests/codegen/issues/issue-111603.rs | 40 |
1 files changed, 0 insertions, 40 deletions
diff --git a/tests/codegen/issues/issue-111603.rs b/tests/codegen/issues/issue-111603.rs deleted file mode 100644 index 2ba5a3f876a..00000000000 --- a/tests/codegen/issues/issue-111603.rs +++ /dev/null @@ -1,40 +0,0 @@ -//@ compile-flags: -Copt-level=3 - -#![crate_type = "lib"] -#![feature(get_mut_unchecked, new_uninit)] - -use std::sync::Arc; - -// CHECK-LABEL: @new_from_array -#[no_mangle] -pub fn new_from_array(x: u64) -> Arc<[u64]> { - // Ensure that we only generate one alloca for the array. - - // CHECK: alloca - // CHECK-SAME: [8000 x i8] - // CHECK-NOT: alloca - let array = [x; 1000]; - Arc::new(array) -} - -// CHECK-LABEL: @new_uninit -#[no_mangle] -pub fn new_uninit(x: u64) -> Arc<[u64; 1000]> { - // CHECK: call alloc::sync::arcinner_layout_for_value_layout - // CHECK-NOT: call alloc::sync::arcinner_layout_for_value_layout - let mut arc = Arc::new_uninit(); - unsafe { Arc::get_mut_unchecked(&mut arc) }.write([x; 1000]); - unsafe { arc.assume_init() } -} - -// CHECK-LABEL: @new_uninit_slice -#[no_mangle] -pub fn new_uninit_slice(x: u64) -> Arc<[u64]> { - // CHECK: call alloc::sync::arcinner_layout_for_value_layout - // CHECK-NOT: call alloc::sync::arcinner_layout_for_value_layout - let mut arc = Arc::new_uninit_slice(1000); - for elem in unsafe { Arc::get_mut_unchecked(&mut arc) } { - elem.write(x); - } - unsafe { arc.assume_init() } -} |
