rust/tests/mir-opt/no_spurious_drop_after_call.main.ElaborateDrops.before.panic-unwind.mir

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

41 lines
800 B
Rust
Raw Normal View History

2020-04-02 16:09:01 -05:00
// MIR for `main` before ElaborateDrops
fn main() -> () {
2023-06-06 08:47:00 -05:00
let mut _0: ();
let _1: ();
let mut _2: std::string::String;
let mut _3: &str;
let _4: &str;
2020-04-02 16:09:01 -05:00
bb0: {
2023-06-06 08:47:00 -05:00
StorageLive(_1);
StorageLive(_2);
StorageLive(_3);
StorageLive(_4);
_4 = const "";
_3 = &(*_4);
2023-06-23 11:53:09 -05:00
_2 = <str as ToString>::to_string(move _3) -> [return: bb1, unwind continue];
2020-04-02 16:09:01 -05:00
}
2020-10-02 15:11:24 -05:00
bb1: {
2023-06-06 08:47:00 -05:00
StorageDead(_3);
_1 = std::mem::drop::<String>(move _2) -> [return: bb2, unwind: bb3];
2020-04-02 16:09:01 -05:00
}
2020-10-02 15:11:24 -05:00
bb2: {
2023-06-06 08:47:00 -05:00
StorageDead(_2);
StorageDead(_4);
StorageDead(_1);
_0 = const ();
return;
2020-04-02 16:09:01 -05:00
}
bb3 (cleanup): {
2023-06-06 08:47:00 -05:00
drop(_2) -> [return: bb4, unwind terminate];
}
bb4 (cleanup): {
2023-06-06 08:47:00 -05:00
resume;
}
2020-04-02 16:09:01 -05:00
}