rust/tests/run-pass/leak-in-static.rs

17 lines
457 B
Rust
Raw Normal View History

2020-12-09 17:09:52 -06:00
use std::{ptr, sync::atomic::{AtomicPtr, Ordering}};
static mut LEAKER: Option<Box<Vec<i32>>> = None;
fn main() {
// Having memory "leaked" in globals is allowed.
unsafe {
LEAKER = Some(Box::new(vec![0; 42]));
}
2020-12-09 17:09:52 -06:00
// Make sure this is allowed even when `AtomicPtr` is used.
{
static LEAK: AtomicPtr<usize> = AtomicPtr::new(ptr::null_mut());
LEAK.store(Box::into_raw(Box::new(0usize)), Ordering::SeqCst);
}
}