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