]> git.lizzy.rs Git - rust.git/blob - src/test/ui/structs-enums/tag-align-u64.rs
Override rustc version in ui and mir-opt tests to get stable hashes
[rust.git] / src / test / ui / structs-enums / tag-align-u64.rs
1 // run-pass
2 #![allow(dead_code)]
3 #![allow(deprecated)]
4
5 use std::mem;
6
7 enum Tag {
8     TagInner(u64)
9 }
10
11 struct Rec {
12     c8: u8,
13     t: Tag
14 }
15
16 fn mk_rec() -> Rec {
17     return Rec { c8:0, t:Tag::TagInner(0) };
18 }
19
20 fn is_u64_aligned(u: &Tag) -> bool {
21     let p: usize = unsafe { mem::transmute(u) };
22     let u64_align = std::mem::min_align_of::<u64>();
23     return (p & (u64_align - 1)) == 0;
24 }
25
26 pub fn main() {
27     let x = mk_rec();
28     assert!(is_u64_aligned(&x.t));
29 }