diff --git a/rust-version b/rust-version index 58948e2fc69a..ac50cd77052c 100644 --- a/rust-version +++ b/rust-version @@ -1 +1 @@ -3ff10e74a74ed093fcabac1de27fe1cd65bbbb4a +f0f68778f798d6d34649745b41770829b17ba5b8 diff --git a/tests/run-pass/leak-in-static.rs b/tests/run-pass/leak-in-static.rs index b12cbbf6e64f..2914b1149c06 100644 --- a/tests/run-pass/leak-in-static.rs +++ b/tests/run-pass/leak-in-static.rs @@ -1,3 +1,5 @@ +use std::{ptr, sync::atomic::{AtomicPtr, Ordering}}; + static mut LEAKER: Option>> = None; fn main() { @@ -5,4 +7,10 @@ fn main() { unsafe { LEAKER = Some(Box::new(vec![0; 42])); } + + // Make sure this is allowed even when `AtomicPtr` is used. + { + static LEAK: AtomicPtr = AtomicPtr::new(ptr::null_mut()); + LEAK.store(Box::into_raw(Box::new(0usize)), Ordering::SeqCst); + } }