mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-27 17:24:06 +00:00
32 lines
633 B
Rust
32 lines
633 B
Rust
|
//@ 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);
|
||
|
}
|