diff options
Diffstat (limited to 'tests/mir-opt/inline/cycle.g.Inline.panic-unwind.diff')
-rw-r--r-- | tests/mir-opt/inline/cycle.g.Inline.panic-unwind.diff | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/tests/mir-opt/inline/cycle.g.Inline.panic-unwind.diff b/tests/mir-opt/inline/cycle.g.Inline.panic-unwind.diff new file mode 100644 index 000000000..3ce8d9acf --- /dev/null +++ b/tests/mir-opt/inline/cycle.g.Inline.panic-unwind.diff @@ -0,0 +1,52 @@ +- // MIR for `g` before Inline ++ // MIR for `g` after Inline + + fn g() -> () { + let mut _0: (); + let _1: (); ++ let mut _2: fn() {main}; ++ let mut _5: (); ++ scope 1 (inlined f::<fn() {main}>) { ++ debug g => _2; ++ let mut _3: &fn() {main}; ++ let _4: (); ++ scope 2 (inlined <fn() {main} as Fn<()>>::call - shim(fn() {main})) { ++ } ++ } + + bb0: { + StorageLive(_1); +- _1 = f::<fn() {main}>(main) -> [return: bb1, unwind continue]; ++ StorageLive(_2); ++ _2 = main; ++ StorageLive(_4); ++ StorageLive(_3); ++ _3 = &_2; ++ StorageLive(_5); ++ _5 = const (); ++ _4 = move (*_3)() -> [return: bb4, unwind: bb2]; + } + + bb1: { ++ StorageDead(_4); ++ StorageDead(_2); + StorageDead(_1); + _0 = const (); + return; ++ } ++ ++ bb2 (cleanup): { ++ drop(_2) -> [return: bb3, unwind terminate]; ++ } ++ ++ bb3 (cleanup): { ++ resume; ++ } ++ ++ bb4: { ++ StorageDead(_5); ++ StorageDead(_3); ++ drop(_2) -> [return: bb1, unwind continue]; + } + } + |