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