| // compile-flags: -O | |
| #![crate_type="lib"] | |
| #![feature(maybe_uninit)] | |
| use std::mem::MaybeUninit; | |
| // Boxing a `MaybeUninit` value should not copy junk from the stack | |
| #[no_mangle] | |
| pub fn box_uninitialized() -> Box<MaybeUninit<usize>> { | |
| // CHECK-LABEL: @box_uninitialized | |
| // CHECK-NOT: store | |
| // CHECK-NOT: alloca | |
| // CHECK-NOT: memcpy | |
| // CHECK-NOT: memset | |
| Box::new(MaybeUninit::uninit()) | |
| } | |
| // FIXME: add a test for a bigger box. Currently broken, see | |
| // https://github.com/rust-lang/rust/issues/58201. |