//! Check that atomic types from `std::sync::atomic` are not `Copy` //! and cannot be moved out of a shared reference. //! //! Regression test for . use std::ptr; use std::sync::atomic::*; fn main() { let x = AtomicBool::new(false); let x = *&x; //~ ERROR: cannot move out of a shared reference let x = AtomicIsize::new(0); let x = *&x; //~ ERROR: cannot move out of a shared reference let x = AtomicUsize::new(0); let x = *&x; //~ ERROR: cannot move out of a shared reference let x: AtomicPtr = AtomicPtr::new(ptr::null_mut()); let x = *&x; //~ ERROR: cannot move out of a shared reference }