Skip to content

Commit

Permalink
Rollup merge of rust-lang#99270 - rhysd:issue-99269, r=Mark-Simulacrum
Browse files Browse the repository at this point in the history
Add `#[must_use]` to `Box::from_raw`

Fixes rust-lang#99269
  • Loading branch information
JohnTitor committed Jul 16, 2022
2 parents 64fcd24 + fa3156e commit 8ec29c7
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 0 deletions.
1 change: 1 addition & 0 deletions library/alloc/src/boxed.rs
Original file line number Diff line number Diff line change
Expand Up @@ -949,6 +949,7 @@ impl<T: ?Sized> Box<T> {
/// [`Layout`]: crate::Layout
#[stable(feature = "box_raw", since = "1.4.0")]
#[inline]
#[must_use = "call `drop(from_raw(ptr))` if you intend to drop the `Box`"]
pub unsafe fn from_raw(raw: *mut T) -> Self {
unsafe { Self::from_raw_in(raw, Global) }
}
Expand Down
11 changes: 11 additions & 0 deletions src/test/ui/lint/unused/must-use-box-from-raw.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
// #99269

// check-pass

#![warn(unused_must_use)]

unsafe fn free<T>(ptr: *mut T) {
Box::from_raw(ptr); //~ WARNING unused return value
}

fn main() {}
15 changes: 15 additions & 0 deletions src/test/ui/lint/unused/must-use-box-from-raw.stderr
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
warning: unused return value of `Box::<T>::from_raw` that must be used
--> $DIR/must-use-box-from-raw.rs:8:5
|
LL | Box::from_raw(ptr);
| ^^^^^^^^^^^^^^^^^^^
|
note: the lint level is defined here
--> $DIR/must-use-box-from-raw.rs:5:9
|
LL | #![warn(unused_must_use)]
| ^^^^^^^^^^^^^^^
= note: call `drop(from_raw(ptr))` if you intend to drop the `Box`

warning: 1 warning emitted

0 comments on commit 8ec29c7

Please sign in to comment.