mirror of https://github.com/rust-lang/rust
56 lines
1.1 KiB
Rust
56 lines
1.1 KiB
Rust
// MIR for `std::ptr::drop_in_place` before AddMovesForPackedDrops
|
|
|
|
fn std::ptr::drop_in_place(_1: *mut [String]) -> () {
|
|
let mut _0: ();
|
|
let mut _2: usize;
|
|
let mut _3: usize;
|
|
let mut _4: *mut std::string::String;
|
|
let mut _5: bool;
|
|
let mut _6: *mut std::string::String;
|
|
let mut _7: bool;
|
|
|
|
bb0: {
|
|
goto -> bb8;
|
|
}
|
|
|
|
bb1: {
|
|
return;
|
|
}
|
|
|
|
bb2 (cleanup): {
|
|
resume;
|
|
}
|
|
|
|
bb3 (cleanup): {
|
|
_4 = &raw mut (*_1)[_3];
|
|
_3 = Add(move _3, const 1_usize);
|
|
drop((*_4)) -> [return: bb4, unwind terminate(cleanup)];
|
|
}
|
|
|
|
bb4 (cleanup): {
|
|
_5 = Eq(_3, _2);
|
|
switchInt(move _5) -> [0: bb3, otherwise: bb2];
|
|
}
|
|
|
|
bb5: {
|
|
_6 = &raw mut (*_1)[_3];
|
|
_3 = Add(move _3, const 1_usize);
|
|
drop((*_6)) -> [return: bb6, unwind: bb4];
|
|
}
|
|
|
|
bb6: {
|
|
_7 = Eq(_3, _2);
|
|
switchInt(move _7) -> [0: bb5, otherwise: bb1];
|
|
}
|
|
|
|
bb7: {
|
|
_2 = Len((*_1));
|
|
_3 = const 0_usize;
|
|
goto -> bb6;
|
|
}
|
|
|
|
bb8: {
|
|
goto -> bb7;
|
|
}
|
|
}
|