mirror of
https://github.com/rust-lang/rust.git
synced 2026-05-31 13:40:15 +03:00
test that partially uninit MaybeUninit works correctly
This commit is contained in:
+1
-1
@@ -1 +1 @@
|
||||
634770c0a7f8598164ab825cfe419cc8b03c36e5
|
||||
f262ca12aac76152c4b46cefcf8300f0249a5eb2
|
||||
|
||||
@@ -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));
|
||||
} }
|
||||
Reference in New Issue
Block a user