]> git.proxmox.com Git - rustc.git/blob - tests/ui/structs-enums/enum-alignment.rs
New upstream version 1.68.2+dfsg1
[rustc.git] / tests / ui / structs-enums / enum-alignment.rs
1 // run-pass
2 #![allow(dead_code)]
3 #![allow(deprecated)]
4
5 use std::mem;
6
7 fn addr_of<T>(ptr: &T) -> usize {
8 ptr as *const T as usize
9 }
10
11 fn is_aligned<T>(ptr: &T) -> bool {
12 unsafe {
13 let addr: usize = mem::transmute(ptr);
14 (addr % mem::min_align_of::<T>()) == 0
15 }
16 }
17
18 pub fn main() {
19 let x = Some(0u64);
20 match x {
21 None => panic!(),
22 Some(ref y) => assert!(is_aligned(y))
23 }
24 }