1 // run-pass
2 #![allow(dead_code)]
3 #![allow(deprecated)]
4 
5 use std::mem;
6 
addr_of<T>(ptr: &T) -> usize7 fn addr_of<T>(ptr: &T) -> usize {
8     ptr as *const T as usize
9 }
10 
is_aligned<T>(ptr: &T) -> bool11 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 
main()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 }
25