From 4e81ecaf3a45a4bb5a8a78ac407d1ef6a7367e72 Mon Sep 17 00:00:00 2001 From: Scott McMurray Date: Sun, 27 Jul 2025 21:39:56 -0700 Subject: Let `RemoveUnneededDrops` also remove `drop_in_place` --- tests/mir-opt/remove_unneeded_drop_in_place.rs | 6 +++++- ...unneeded_drop_in_place.slice_in_place.RemoveUnneededDrops.diff | 8 ++++---- 2 files changed, 9 insertions(+), 5 deletions(-) (limited to 'tests') diff --git a/tests/mir-opt/remove_unneeded_drop_in_place.rs b/tests/mir-opt/remove_unneeded_drop_in_place.rs index 7fb7b1e78de..470c6499d16 100644 --- a/tests/mir-opt/remove_unneeded_drop_in_place.rs +++ b/tests/mir-opt/remove_unneeded_drop_in_place.rs @@ -1,13 +1,17 @@ //@ test-mir-pass: RemoveUnneededDrops //@ needs-unwind +//@ compile-flags: -Z mir-opt-level=1 // EMIT_MIR remove_unneeded_drop_in_place.slice_in_place.RemoveUnneededDrops.diff unsafe fn slice_in_place(ptr: *mut [char]) { + // CHECK-LABEL: fn slice_in_place(_1: *mut [char]) + // CHECK: bb0: { + // CHECK-NEXT: return; + // CHECK-NEXT: } std::ptr::drop_in_place(ptr) } fn main() { - // CHECK-LABEL: fn main( let mut a = ['o', 'k']; unsafe { slice_in_place(&raw mut a) }; } diff --git a/tests/mir-opt/remove_unneeded_drop_in_place.slice_in_place.RemoveUnneededDrops.diff b/tests/mir-opt/remove_unneeded_drop_in_place.slice_in_place.RemoveUnneededDrops.diff index 4068e7940bc..4d70e7151c3 100644 --- a/tests/mir-opt/remove_unneeded_drop_in_place.slice_in_place.RemoveUnneededDrops.diff +++ b/tests/mir-opt/remove_unneeded_drop_in_place.slice_in_place.RemoveUnneededDrops.diff @@ -9,10 +9,10 @@ bb0: { StorageLive(_2); _2 = copy _1; - _0 = drop_in_place::<[char]>(move _2) -> [return: bb1, unwind continue]; - } - - bb1: { +- _0 = drop_in_place::<[char]>(move _2) -> [return: bb1, unwind continue]; +- } +- +- bb1: { StorageDead(_2); return; } -- cgit 1.4.1-3-g733a5