blob: d96414676ee662c0879857344881f781c881878b [file] [log] [blame]
//! Check that atomic types from `std::sync::atomic` are not `Copy`
//! and cannot be moved out of a shared reference.
//!
//! Regression test for <https://github.com/rust-lang/rust/issues/8380>.
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<usize> = AtomicPtr::new(ptr::null_mut());
let x = *&x; //~ ERROR: cannot move out of a shared reference
}