summaryrefslogtreecommitdiffstats
path: root/tests/mir-opt/no_spurious_drop_after_call.main.ElaborateDrops.before.panic-abort.mir
diff options
context:
space:
mode:
Diffstat (limited to 'tests/mir-opt/no_spurious_drop_after_call.main.ElaborateDrops.before.panic-abort.mir')
-rw-r--r--tests/mir-opt/no_spurious_drop_after_call.main.ElaborateDrops.before.panic-abort.mir40
1 files changed, 40 insertions, 0 deletions
diff --git a/tests/mir-opt/no_spurious_drop_after_call.main.ElaborateDrops.before.panic-abort.mir b/tests/mir-opt/no_spurious_drop_after_call.main.ElaborateDrops.before.panic-abort.mir
new file mode 100644
index 000000000..e22fc7d54
--- /dev/null
+++ b/tests/mir-opt/no_spurious_drop_after_call.main.ElaborateDrops.before.panic-abort.mir
@@ -0,0 +1,40 @@
+// MIR for `main` before ElaborateDrops
+
+fn main() -> () {
+ let mut _0: ();
+ let _1: ();
+ let mut _2: std::string::String;
+ let mut _3: &str;
+ let _4: &str;
+
+ bb0: {
+ StorageLive(_1);
+ StorageLive(_2);
+ StorageLive(_3);
+ StorageLive(_4);
+ _4 = const "";
+ _3 = &(*_4);
+ _2 = <str as ToString>::to_string(move _3) -> [return: bb1, unwind: bb4];
+ }
+
+ bb1: {
+ StorageDead(_3);
+ _1 = std::mem::drop::<String>(move _2) -> [return: bb2, unwind: bb3];
+ }
+
+ bb2: {
+ StorageDead(_2);
+ StorageDead(_4);
+ StorageDead(_1);
+ _0 = const ();
+ return;
+ }
+
+ bb3 (cleanup): {
+ drop(_2) -> [return: bb4, unwind terminate];
+ }
+
+ bb4 (cleanup): {
+ resume;
+ }
+}