2 // revisions: mirunsafeck thirunsafeck
3 // [thirunsafeck]compile-flags: -Z thir-unsafeck
7 use std::mem::{size_of, size_of_val, align_of, align_of_val};
16 assert_eq!(align_of::<U16>(), 16);
17 assert_eq!(size_of::<U16>(), 16);
18 let u = U16 { a: 10 };
20 assert_eq!(align_of_val(&u.a), 1);
21 assert_eq!(size_of_val(&u.a), 1);
25 let u = U16 { b: 11 };
27 assert_eq!(align_of_val(&u.b), 4);
28 assert_eq!(size_of_val(&u.b), 4);
32 hybrid::check_hybrid();
36 use std::mem::{size_of, align_of};
39 #[derive(Copy, Clone)]
57 pub fn check_hybrid() {
58 assert_eq!(align_of::<S1>(), 16);
59 assert_eq!(size_of::<S1>(), 16);
60 assert_eq!(align_of::<U>(), 32);
61 assert_eq!(size_of::<U>(), 32);
62 assert_eq!(align_of::<S2>(), 64);
63 assert_eq!(size_of::<S2>(), 64);