2020-12-09 17:09:52 -06:00
|
|
|
use std::{ptr, sync::atomic::{AtomicPtr, Ordering}};
|
|
|
|
|
2020-04-04 06:35:30 -05:00
|
|
|
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);
|
|
|
|
}
|
2020-04-04 06:35:30 -05:00
|
|
|
}
|