rust/tests/pass/partially-uninit.rs
2022-06-20 16:09:45 -07:00

16 lines
429 B
Rust

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));
}
}