1 // run-pass 2 // no-prefer-dynamic 3 // aux-build:custom.rs 4 // aux-build:helper.rs 5 6 #![allow(nonstandard_style)] 7 8 extern crate custom; 9 extern crate helper; 10 11 use custom::A; 12 use std::sync::atomic::{AtomicUsize, Ordering}; 13 14 #[allow(dead_code)] 15 struct u8; 16 #[allow(dead_code)] 17 struct usize; 18 #[allow(dead_code)] 19 static arg0: () = (); 20 21 #[global_allocator] 22 pub static GLOBAL: A = A(AtomicUsize::new(0)); 23 main()24fn main() { 25 let n = GLOBAL.0.load(Ordering::SeqCst); 26 let s = Box::new(0); 27 helper::work_with(&s); 28 assert_eq!(GLOBAL.0.load(Ordering::SeqCst), n + 1); 29 drop(s); 30 assert_eq!(GLOBAL.0.load(Ordering::SeqCst), n + 2); 31 } 32