// 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);
}
