Skip to content

Commit

Permalink
Auto merge of #2050 - RalfJung:partially-uninit, r=RalfJung
Browse files Browse the repository at this point in the history
test that partially uninit MaybeUninit works correctly

This got finally fixed by rust-lang/rust#94527 :)
  • Loading branch information
bors committed Apr 5, 2022
2 parents 955bacc + 46ff257 commit fb01df5
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 1 deletion.
2 changes: 1 addition & 1 deletion rust-version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
634770c0a7f8598164ab825cfe419cc8b03c36e5
f262ca12aac76152c4b46cefcf8300f0249a5eb2
15 changes: 15 additions & 0 deletions tests/run-pass/partially-uninit.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
// compile-flags: -Zmiri-check-number-validity

use std::mem::{self, MaybeUninit};

#[repr(C)]
#[derive(Copy, Clone, Debug, PartialEq)]
struct Demo(bool, u16);

fn main() { unsafe {
// Transmute-round-trip through a type with Scalar layout is lossless.
// This is tricky because that 'scalar' is *partially* uninitialized.
let x = Demo(true, 3);
let y: MaybeUninit<u32> = mem::transmute(x);
assert_eq!(x, mem::transmute(y));
} }

0 comments on commit fb01df5

Please sign in to comment.