3 // revisions: default nomiropt
4 //[nomiropt]compile-flags: -Z mir-opt-level=0
6 #![feature(generators, generator_trait)]
8 use std::ops::Generator;
10 use std::sync::atomic::{AtomicUsize, Ordering};
12 static A: AtomicUsize = AtomicUsize::new(0);
18 A.fetch_add(1, Ordering::SeqCst);
23 fn test() -> bool { true }
24 fn test2() -> bool { false }
40 let n = A.load(Ordering::SeqCst);
41 Pin::new(&mut a).resume(());
42 assert_eq!(A.load(Ordering::SeqCst), n + 1);
43 Pin::new(&mut a).resume(());
44 assert_eq!(A.load(Ordering::SeqCst), n + 1);
56 let n = A.load(Ordering::SeqCst);
57 Pin::new(&mut a).resume(());
58 assert_eq!(A.load(Ordering::SeqCst), n);
59 Pin::new(&mut a).resume(());
60 assert_eq!(A.load(Ordering::SeqCst), n + 1);