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