Skip to content

Commit 145add7

Browse files
committed
Add test for slice drop shims
1 parent 6cc24f2 commit 145add7

File tree

1 file changed

+92
-0
lines changed

1 file changed

+92
-0
lines changed

src/test/mir-opt/slice-drop-shim.rs

+92
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
fn main() {
2+
std::ptr::drop_in_place::<[String]> as unsafe fn(_);
3+
}
4+
5+
// END RUST SOURCE
6+
7+
// START rustc.ptr-real_drop_in_place.[std__string__String].AddMovesForPackedDrops.before.mir
8+
// let mut _2: usize;
9+
// let mut _3: bool;
10+
// let mut _4: usize;
11+
// let mut _5: usize;
12+
// let mut _6: &mut std::string::String;
13+
// let mut _7: bool;
14+
// let mut _8: &mut std::string::String;
15+
// let mut _9: bool;
16+
// let mut _10: *mut std::string::String;
17+
// let mut _11: usize;
18+
// let mut _12: *mut std::string::String;
19+
// let mut _13: &mut std::string::String;
20+
// let mut _14: bool;
21+
// let mut _15: &mut std::string::String;
22+
// let mut _16: bool;
23+
// let mut _17: *mut [std::string::String];
24+
// bb0: {
25+
// goto -> bb15;
26+
// }
27+
// bb1: {
28+
// return;
29+
// }
30+
// bb2 (cleanup): {
31+
// resume;
32+
// }
33+
// bb3 (cleanup): {
34+
// _6 = &mut (*_1)[_4];
35+
// _4 = Add(_4, const 1usize);
36+
// drop((*_6)) -> bb4;
37+
// }
38+
// bb4 (cleanup): {
39+
// _7 = Eq(_4, _5);
40+
// switchInt(move _7) -> [false: bb3, otherwise: bb2];
41+
// }
42+
// bb5: {
43+
// _8 = &mut (*_1)[_4];
44+
// _4 = Add(_4, const 1usize);
45+
// drop((*_8)) -> [return: bb6, unwind: bb4];
46+
// }
47+
// bb6: {
48+
// _9 = Eq(_4, _5);
49+
// switchInt(move _9) -> [false: bb5, otherwise: bb1];
50+
// }
51+
// bb7: {
52+
// _5 = Len((*_1));
53+
// _4 = const 0usize;
54+
// goto -> bb6;
55+
// }
56+
// bb8: {
57+
// goto -> bb7;
58+
// }
59+
// bb9 (cleanup): {
60+
// _13 = &mut (*_10);
61+
// _10 = Offset(_10, const 1usize);
62+
// drop((*_13)) -> bb10;
63+
// }
64+
// bb10 (cleanup): {
65+
// _14 = Eq(_10, _12);
66+
// switchInt(move _14) -> [false: bb9, otherwise: bb2];
67+
// }
68+
// bb11: {
69+
// _15 = &mut (*_10);
70+
// _10 = Offset(_10, const 1usize);
71+
// drop((*_15)) -> [return: bb12, unwind: bb10];
72+
// }
73+
// bb12: {
74+
// _16 = Eq(_10, _12);
75+
// switchInt(move _16) -> [false: bb11, otherwise: bb1];
76+
// }
77+
// bb13: {
78+
// _11 = Len((*_1));
79+
// _17 = &mut (*_1);
80+
// _10 = move _17 as *mut std::string::String (Misc);
81+
// _12 = Offset(_10, move _11);
82+
// goto -> bb12;
83+
// }
84+
// bb14: {
85+
// goto -> bb13;
86+
// }
87+
// bb15: {
88+
// _2 = SizeOf(std::string::String);
89+
// _3 = Eq(move _2, const 0usize);
90+
// switchInt(move _3) -> [false: bb14, otherwise: bb8];
91+
// }
92+
// END rustc.ptr-real_drop_in_place.[std__string__String].AddMovesForPackedDrops.before.mir

0 commit comments

Comments
 (0)