]> git.proxmox.com Git - rustc.git/blame - src/test/ui/atomic-access-bool.rs
New upstream version 1.49.0+dfsg1
[rustc.git] / src / test / ui / atomic-access-bool.rs
CommitLineData
416331ca
XL
1// run-pass
2
0bf4aa26 3#![allow(stable_features)]
9e0c209e 4#![feature(atomic_access)]
9fa01778 5use std::sync::atomic::AtomicBool;
9e0c209e
SL
6use std::sync::atomic::Ordering::*;
7
9fa01778 8static mut ATOMIC: AtomicBool = AtomicBool::new(false);
9e0c209e
SL
9
10fn main() {
11 unsafe {
12 assert_eq!(*ATOMIC.get_mut(), false);
13 ATOMIC.store(true, SeqCst);
14 assert_eq!(*ATOMIC.get_mut(), true);
15 ATOMIC.fetch_or(false, SeqCst);
16 assert_eq!(*ATOMIC.get_mut(), true);
17 ATOMIC.fetch_and(false, SeqCst);
18 assert_eq!(*ATOMIC.get_mut(), false);
19 ATOMIC.fetch_nand(true, SeqCst);
20 assert_eq!(*ATOMIC.get_mut(), true);
21 ATOMIC.fetch_xor(true, SeqCst);
22 assert_eq!(*ATOMIC.get_mut(), false);
23 }
24}