From a5aa408646d47728fa23f237e8622039d6685c5a Mon Sep 17 00:00:00 2001 From: Pavel Grigorenko Date: Wed, 16 Oct 2024 22:19:56 +0300 Subject: [PATCH] New lint: `dangling_pointers_from_temporaries` --- alloc/tests/boxed.rs | 1 + core/src/cell.rs | 1 + core/src/ffi/c_str.rs | 4 +++- 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/alloc/tests/boxed.rs b/alloc/tests/boxed.rs index bfc31a626fadd..544f60da587c8 100644 --- a/alloc/tests/boxed.rs +++ b/alloc/tests/boxed.rs @@ -4,6 +4,7 @@ use core::mem::MaybeUninit; use core::ptr::NonNull; #[test] +#[cfg_attr(not(bootstrap), expect(dangling_pointers_from_temporaries))] fn uninitialized_zero_size_box() { assert_eq!( &*Box::<()>::new_uninit() as *const _, diff --git a/core/src/cell.rs b/core/src/cell.rs index 0b10624479344..7e6c042274df6 100644 --- a/core/src/cell.rs +++ b/core/src/cell.rs @@ -304,6 +304,7 @@ pub use once::OnceCell; /// ``` /// /// See the [module-level documentation](self) for more. +#[cfg_attr(not(test), rustc_diagnostic_item = "Cell")] #[stable(feature = "rust1", since = "1.0.0")] #[repr(transparent)] #[rustc_pub_transparent] diff --git a/core/src/ffi/c_str.rs b/core/src/ffi/c_str.rs index 0f4386190ee4c..93dd351b02958 100644 --- a/core/src/ffi/c_str.rs +++ b/core/src/ffi/c_str.rs @@ -464,7 +464,9 @@ impl CStr { /// behavior when `ptr` is used inside the `unsafe` block: /// /// ```no_run - /// # #![allow(unused_must_use)] #![allow(temporary_cstring_as_ptr)] + /// # #![allow(unused_must_use)] + /// # #![cfg_attr(bootstrap, expect(temporary_cstring_as_ptr))] + /// # #![cfg_attr(not(bootstrap), expect(dangling_pointers_from_temporaries))] /// use std::ffi::CString; /// /// // Do not do this: