]> git.lizzy.rs Git - rust.git/blob - src/test/ui/packed/packed-tuple-struct-layout.rs
Rollup merge of #95534 - jyn514:std-mem-copy, r=joshtriplett
[rust.git] / src / test / ui / packed / packed-tuple-struct-layout.rs
1 // run-pass
2 use std::mem;
3
4 #[repr(packed)]
5 struct S4(u8,[u8; 3]);
6
7 #[repr(packed)]
8 struct S5(u8,u32);
9
10 pub fn main() {
11     unsafe {
12         let s4 = S4(1, [2,3,4]);
13         let transd : [u8; 4] = mem::transmute(s4);
14         assert_eq!(transd, [1, 2, 3, 4]);
15
16         let s5 = S5(1, 0xff_00_00_ff);
17         let transd : [u8; 5] = mem::transmute(s5);
18         // Don't worry about endianness, the u32 is palindromic.
19         assert_eq!(transd, [1, 0xff, 0, 0, 0xff]);
20     }
21 }