rust/src/test/mir-opt/remove_unneeded_drops.cannot_opt_generic.RemoveUnneededDrops.diff
Simon Vandel Sillesen 290dca1781 MIR pass to remove unneeded drops on types not needing drop
This is heavily dependent on MIR inlining running to actually see the drop statement
2020-09-22 23:09:07 +02:00

32 lines
1.7 KiB
Diff

- // MIR for `cannot_opt_generic` before RemoveUnneededDrops
+ // MIR for `cannot_opt_generic` after RemoveUnneededDrops
fn cannot_opt_generic(_1: T) -> () {
debug x => _1; // in scope 0 at $DIR/remove_unneeded_drops.rs:19:26: 19:27
let mut _0: (); // return place in scope 0 at $DIR/remove_unneeded_drops.rs:19:32: 19:32
let _2: (); // in scope 0 at $DIR/remove_unneeded_drops.rs:20:5: 20:12
let mut _3: T; // in scope 0 at $DIR/remove_unneeded_drops.rs:20:10: 20:11
scope 1 {
debug _x => _3; // in scope 1 at $SRC_DIR/core/src/mem/mod.rs:LL:COL
}
bb0: {
StorageLive(_2); // scope 0 at $DIR/remove_unneeded_drops.rs:20:5: 20:12
StorageLive(_3); // scope 0 at $DIR/remove_unneeded_drops.rs:20:10: 20:11
_3 = move _1; // scope 0 at $DIR/remove_unneeded_drops.rs:20:10: 20:11
_2 = const (); // scope 1 at $SRC_DIR/core/src/mem/mod.rs:LL:COL
drop(_3) -> [return: bb2, unwind: bb1]; // scope 1 at $SRC_DIR/core/src/mem/mod.rs:LL:COL
}
bb1 (cleanup): {
resume; // scope 0 at $DIR/remove_unneeded_drops.rs:19:1: 21:2
}
bb2: {
StorageDead(_3); // scope 0 at $DIR/remove_unneeded_drops.rs:20:11: 20:12
StorageDead(_2); // scope 0 at $DIR/remove_unneeded_drops.rs:20:12: 20:13
_0 = const (); // scope 0 at $DIR/remove_unneeded_drops.rs:19:32: 21:2
return; // scope 0 at $DIR/remove_unneeded_drops.rs:21:2: 21:2
}
}