diff options
| author | Michael Goulet <michael@errs.io> | 2025-03-02 18:52:33 +0000 |
|---|---|---|
| committer | Michael Goulet <michael@errs.io> | 2025-03-02 18:53:49 +0000 |
| commit | 5f575bc4bca3f18e4798110b05e059a840c0fd49 (patch) | |
| tree | 3d0ed137b2f55fd769e7cac5798b8c2e7f607275 /tests/codegen/slice-init.rs | |
| parent | a59a8f9e7579b4346eb6b00c3809d04986dcfcee (diff) | |
| download | rust-5f575bc4bca3f18e4798110b05e059a840c0fd49.tar.gz rust-5f575bc4bca3f18e4798110b05e059a840c0fd49.zip | |
Add a test
Diffstat (limited to 'tests/codegen/slice-init.rs')
| -rw-r--r-- | tests/codegen/slice-init.rs | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/tests/codegen/slice-init.rs b/tests/codegen/slice-init.rs index 1c2dd3e8875..950e0b0c10d 100644 --- a/tests/codegen/slice-init.rs +++ b/tests/codegen/slice-init.rs @@ -89,6 +89,20 @@ pub fn option_none_init() -> [Option<u8>; N] { [None; N] } +use std::mem::MaybeUninit; + +// FIXME: This could be optimized into a memset. +// Regression test for <https://github.com/rust-lang/rust/issues/137892>. +#[no_mangle] +pub fn half_uninit() -> [(u128, MaybeUninit<u128>); N] { + // CHECK-NOT: select + // CHECK: br label %repeat_loop_header{{.*}} + // CHECK-NOT: switch + // CHECK: icmp + // CHECK-NOT: call void @llvm.memset.p0 + [const { (0, MaybeUninit::uninit()) }; N] +} + // Use an opaque function to prevent rustc from removing useless drops. #[inline(never)] pub fn opaque(_: impl Sized) {} |
