Skip to content

Commit 9b107be

Browse files
committed
Add a mir-opt test for an unneeded drop_in_place
1 parent 07b7dc9 commit 9b107be

File tree

2 files changed

+33
-0
lines changed

2 files changed

+33
-0
lines changed
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
//@ test-mir-pass: RemoveUnneededDrops
2+
//@ needs-unwind
3+
4+
// EMIT_MIR remove_unneeded_drop_in_place.slice_in_place.RemoveUnneededDrops.diff
5+
unsafe fn slice_in_place(ptr: *mut [char]) {
6+
std::ptr::drop_in_place(ptr)
7+
}
8+
9+
fn main() {
10+
// CHECK-LABEL: fn main(
11+
let mut a = ['o', 'k'];
12+
unsafe { slice_in_place(&raw mut a) };
13+
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
- // MIR for `slice_in_place` before RemoveUnneededDrops
2+
+ // MIR for `slice_in_place` after RemoveUnneededDrops
3+
4+
fn slice_in_place(_1: *mut [char]) -> () {
5+
debug ptr => _1;
6+
let mut _0: ();
7+
let mut _2: *mut [char];
8+
9+
bb0: {
10+
StorageLive(_2);
11+
_2 = copy _1;
12+
_0 = drop_in_place::<[char]>(move _2) -> [return: bb1, unwind continue];
13+
}
14+
15+
bb1: {
16+
StorageDead(_2);
17+
return;
18+
}
19+
}
20+

0 commit comments

Comments
 (0)