#![allow(dead_code, deprecated, unused_variables, unused_mut)] use std::sync::atomic::{self, AtomicI8}; fn main() { let ptr: *mut i8 = Box::into_raw(Box::new(0)); assert!(ptr.cast::< AtomicI8 > ().is_aligned()); { let atomic = unsafe { AtomicI8::from_ptr(ptr) }; atomic.store(1, atomic::Ordering::Relaxed); } assert_eq!(unsafe { * ptr }, 1); unsafe { drop(Box::from_raw(ptr)) } }