diff options
Diffstat (limited to 'src/test/mir-opt/inline/cycle.main.Inline.diff')
-rw-r--r-- | src/test/mir-opt/inline/cycle.main.Inline.diff | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/src/test/mir-opt/inline/cycle.main.Inline.diff b/src/test/mir-opt/inline/cycle.main.Inline.diff new file mode 100644 index 000000000..6def7c3ee --- /dev/null +++ b/src/test/mir-opt/inline/cycle.main.Inline.diff @@ -0,0 +1,74 @@ +- // MIR for `main` before Inline ++ // MIR for `main` after Inline + + fn main() -> () { + let mut _0: (); // return place in scope 0 at $DIR/cycle.rs:+0:11: +0:11 + let _1: (); // in scope 0 at $DIR/cycle.rs:+1:5: +1:9 ++ let mut _2: fn() {g}; // in scope 0 at $DIR/cycle.rs:+1:5: +1:9 ++ scope 1 (inlined f::<fn() {g}>) { // at $DIR/cycle.rs:17:5: 17:9 ++ debug g => _2; // in scope 1 at $DIR/cycle.rs:+0:6: +0:7 ++ let _3: (); // in scope 1 at $DIR/cycle.rs:+0:5: +0:8 ++ let mut _4: &fn() {g}; // in scope 1 at $DIR/cycle.rs:+0:5: +0:6 ++ let mut _5: (); // in scope 1 at $DIR/cycle.rs:+0:5: +0:8 ++ scope 2 (inlined <fn() {g} as Fn<()>>::call - shim(fn() {g})) { // at $DIR/cycle.rs:6:5: 6:8 ++ scope 3 (inlined g) { // at $SRC_DIR/core/src/ops/function.rs:LL:COL ++ let mut _6: fn() {main}; // in scope 3 at $DIR/cycle.rs:+0:5: +0:12 ++ scope 4 (inlined f::<fn() {main}>) { // at $DIR/cycle.rs:12:5: 12:12 ++ debug g => _6; // in scope 4 at $DIR/cycle.rs:+0:6: +0:7 ++ let _7: (); // in scope 4 at $DIR/cycle.rs:+0:5: +0:8 ++ let mut _8: &fn() {main}; // in scope 4 at $DIR/cycle.rs:+0:5: +0:6 ++ scope 5 (inlined <fn() {main} as Fn<()>>::call - shim(fn() {main})) { // at $DIR/cycle.rs:6:5: 6:8 ++ } ++ } ++ } ++ } ++ } + + bb0: { + StorageLive(_1); // scope 0 at $DIR/cycle.rs:+1:5: +1:9 +- _1 = f::<fn() {g}>(g) -> bb1; // scope 0 at $DIR/cycle.rs:+1:5: +1:9 ++ StorageLive(_2); // scope 0 at $DIR/cycle.rs:+1:5: +1:9 ++ _2 = g; // scope 0 at $DIR/cycle.rs:+1:5: +1:9 + // mir::Constant +- // + span: $DIR/cycle.rs:17:5: 17:6 +- // + literal: Const { ty: fn(fn() {g}) {f::<fn() {g}>}, val: Value(<ZST>) } +- // mir::Constant + // + span: $DIR/cycle.rs:17:7: 17:8 + // + literal: Const { ty: fn() {g}, val: Value(<ZST>) } ++ StorageLive(_3); // scope 1 at $DIR/cycle.rs:+0:5: +0:8 ++ StorageLive(_4); // scope 1 at $DIR/cycle.rs:+0:5: +0:6 ++ _4 = &_2; // scope 1 at $DIR/cycle.rs:+0:5: +0:6 ++ StorageLive(_5); // scope 1 at $DIR/cycle.rs:+0:5: +0:8 ++ StorageLive(_6); // scope 3 at $DIR/cycle.rs:+0:5: +0:12 ++ StorageLive(_7); // scope 4 at $DIR/cycle.rs:+0:5: +0:8 ++ StorageLive(_8); // scope 4 at $DIR/cycle.rs:+0:5: +0:6 ++ _8 = &_6; // scope 4 at $DIR/cycle.rs:+0:5: +0:6 ++ _7 = move (*_8)() -> [return: bb4, unwind: bb2]; // scope 5 at $SRC_DIR/core/src/ops/function.rs:LL:COL + } + + bb1: { ++ StorageDead(_2); // scope 0 at $DIR/cycle.rs:+1:5: +1:9 + StorageDead(_1); // scope 0 at $DIR/cycle.rs:+1:9: +1:10 + _0 = const (); // scope 0 at $DIR/cycle.rs:+0:11: +2:2 + return; // scope 0 at $DIR/cycle.rs:+2:2: +2:2 ++ } ++ ++ bb2 (cleanup): { ++ drop(_2) -> bb3; // scope 1 at $DIR/cycle.rs:+0:1: +0:2 ++ } ++ ++ bb3 (cleanup): { ++ resume; // scope 1 at $DIR/cycle.rs:+0:1: +0:2 ++ } ++ ++ bb4: { ++ StorageDead(_8); // scope 4 at $DIR/cycle.rs:+0:7: +0:8 ++ StorageDead(_7); // scope 4 at $DIR/cycle.rs:+0:8: +0:9 ++ StorageDead(_6); // scope 3 at $DIR/cycle.rs:+0:5: +0:12 ++ StorageDead(_5); // scope 1 at $DIR/cycle.rs:+0:7: +0:8 ++ StorageDead(_4); // scope 1 at $DIR/cycle.rs:+0:7: +0:8 ++ StorageDead(_3); // scope 1 at $DIR/cycle.rs:+0:8: +0:9 ++ drop(_2) -> bb1; // scope 1 at $DIR/cycle.rs:+0:1: +0:2 + } + } + |