//@ run-pass //@ no-prefer-dynamic //@ aux-build:custom.rs //@ aux-build:helper.rs #![allow(nonstandard_style)] extern crate custom; extern crate helper; use custom::A; use std::sync::atomic::{AtomicUsize, Ordering}; #[allow(dead_code)] struct u8; #[allow(dead_code)] struct usize; #[allow(dead_code)] static arg0: () = (); #[global_allocator] pub static GLOBAL: A = A(AtomicUsize::new(0)); fn main() { let n = GLOBAL.0.load(Ordering::SeqCst); let s = Box::new(0); helper::work_with(&s); assert_eq!(GLOBAL.0.load(Ordering::SeqCst), n + 1); drop(s); assert_eq!(GLOBAL.0.load(Ordering::SeqCst), n + 2); }