| - // MIR for `main` before Derefer |
| + // MIR for `main` after Derefer |
| |
| fn main() -> () { |
| let mut _0: (); // return place in scope 0 at $DIR/derefer_terminator_test.rs:+0:11: +0:11 |
| let _1: bool; // in scope 0 at $DIR/derefer_terminator_test.rs:+1:9: +1:10 |
| let _3: (); // in scope 0 at $DIR/derefer_terminator_test.rs:+3:5: +6:6 |
| let mut _4: &&&&bool; // in scope 0 at $DIR/derefer_terminator_test.rs:+3:15: +3:22 |
| let _5: &&&bool; // in scope 0 at $DIR/derefer_terminator_test.rs:+3:17: +3:21 |
| let _6: &&bool; // in scope 0 at $DIR/derefer_terminator_test.rs:+3:18: +3:21 |
| let _7: &bool; // in scope 0 at $DIR/derefer_terminator_test.rs:+3:19: +3:21 |
| + let mut _10: &&&bool; // in scope 0 at $DIR/derefer_terminator_test.rs:+3:15: +3:22 |
| + let mut _11: &&bool; // in scope 0 at $DIR/derefer_terminator_test.rs:+3:15: +3:22 |
| + let mut _12: &bool; // in scope 0 at $DIR/derefer_terminator_test.rs:+3:15: +3:22 |
| scope 1 { |
| debug b => _1; // in scope 1 at $DIR/derefer_terminator_test.rs:+1:9: +1:10 |
| let _2: bool; // in scope 1 at $DIR/derefer_terminator_test.rs:+2:9: +2:10 |
| scope 2 { |
| debug d => _2; // in scope 2 at $DIR/derefer_terminator_test.rs:+2:9: +2:10 |
| let _8: i32; // in scope 2 at $DIR/derefer_terminator_test.rs:+4:22: +4:23 |
| let _9: i32; // in scope 2 at $DIR/derefer_terminator_test.rs:+7:9: +7:10 |
| scope 3 { |
| debug x => _8; // in scope 3 at $DIR/derefer_terminator_test.rs:+4:22: +4:23 |
| } |
| scope 4 { |
| debug y => _9; // in scope 4 at $DIR/derefer_terminator_test.rs:+7:9: +7:10 |
| } |
| } |
| } |
| |
| bb0: { |
| StorageLive(_1); // scope 0 at $DIR/derefer_terminator_test.rs:+1:9: +1:10 |
| _1 = foo() -> bb1; // scope 0 at $DIR/derefer_terminator_test.rs:+1:13: +1:18 |
| // mir::Constant |
| // + span: $DIR/derefer_terminator_test.rs:6:13: 6:16 |
| // + literal: Const { ty: fn() -> bool {foo}, val: Value(<ZST>) } |
| } |
| |
| bb1: { |
| StorageLive(_2); // scope 1 at $DIR/derefer_terminator_test.rs:+2:9: +2:10 |
| _2 = foo() -> bb2; // scope 1 at $DIR/derefer_terminator_test.rs:+2:13: +2:18 |
| // mir::Constant |
| // + span: $DIR/derefer_terminator_test.rs:7:13: 7:16 |
| // + literal: Const { ty: fn() -> bool {foo}, val: Value(<ZST>) } |
| } |
| |
| bb2: { |
| StorageLive(_3); // scope 2 at $DIR/derefer_terminator_test.rs:+3:5: +6:6 |
| StorageLive(_4); // scope 2 at $DIR/derefer_terminator_test.rs:+3:15: +3:22 |
| StorageLive(_5); // scope 2 at $DIR/derefer_terminator_test.rs:+3:17: +3:21 |
| StorageLive(_6); // scope 2 at $DIR/derefer_terminator_test.rs:+3:18: +3:21 |
| StorageLive(_7); // scope 2 at $DIR/derefer_terminator_test.rs:+3:19: +3:21 |
| _7 = &_1; // scope 2 at $DIR/derefer_terminator_test.rs:+3:19: +3:21 |
| _6 = &_7; // scope 2 at $DIR/derefer_terminator_test.rs:+3:18: +3:21 |
| _5 = &_6; // scope 2 at $DIR/derefer_terminator_test.rs:+3:17: +3:21 |
| _4 = &_5; // scope 2 at $DIR/derefer_terminator_test.rs:+3:15: +3:22 |
| - switchInt((*(*(*(*_4))))) -> [0: bb3, otherwise: bb4]; // scope 2 at $DIR/derefer_terminator_test.rs:+3:5: +3:22 |
| + _10 = deref_copy (*_4); // scope 2 at $DIR/derefer_terminator_test.rs:+3:5: +3:22 |
| + _11 = deref_copy (*_10); // scope 2 at $DIR/derefer_terminator_test.rs:+3:5: +3:22 |
| + _12 = deref_copy (*_11); // scope 2 at $DIR/derefer_terminator_test.rs:+3:5: +3:22 |
| + switchInt((*_12)) -> [0: bb3, otherwise: bb4]; // scope 2 at $DIR/derefer_terminator_test.rs:+3:5: +3:22 |
| } |
| |
| bb3: { |
| _3 = const (); // scope 2 at $DIR/derefer_terminator_test.rs:+5:18: +5:20 |
| goto -> bb5; // scope 2 at $DIR/derefer_terminator_test.rs:+5:18: +5:20 |
| } |
| |
| bb4: { |
| StorageLive(_8); // scope 2 at $DIR/derefer_terminator_test.rs:+4:22: +4:23 |
| _8 = const 5_i32; // scope 2 at $DIR/derefer_terminator_test.rs:+4:26: +4:27 |
| _3 = const (); // scope 2 at $DIR/derefer_terminator_test.rs:+4:17: +4:29 |
| StorageDead(_8); // scope 2 at $DIR/derefer_terminator_test.rs:+4:28: +4:29 |
| goto -> bb5; // scope 2 at $DIR/derefer_terminator_test.rs:+4:28: +4:29 |
| } |
| |
| bb5: { |
| StorageDead(_7); // scope 2 at $DIR/derefer_terminator_test.rs:+6:5: +6:6 |
| StorageDead(_6); // scope 2 at $DIR/derefer_terminator_test.rs:+6:5: +6:6 |
| StorageDead(_5); // scope 2 at $DIR/derefer_terminator_test.rs:+6:5: +6:6 |
| StorageDead(_4); // scope 2 at $DIR/derefer_terminator_test.rs:+6:5: +6:6 |
| StorageDead(_3); // scope 2 at $DIR/derefer_terminator_test.rs:+6:5: +6:6 |
| StorageLive(_9); // scope 2 at $DIR/derefer_terminator_test.rs:+7:9: +7:10 |
| _9 = const 42_i32; // scope 2 at $DIR/derefer_terminator_test.rs:+7:13: +7:15 |
| _0 = const (); // scope 0 at $DIR/derefer_terminator_test.rs:+0:11: +8:2 |
| StorageDead(_9); // scope 2 at $DIR/derefer_terminator_test.rs:+8:1: +8:2 |
| StorageDead(_2); // scope 1 at $DIR/derefer_terminator_test.rs:+8:1: +8:2 |
| StorageDead(_1); // scope 0 at $DIR/derefer_terminator_test.rs:+8:1: +8:2 |
| return; // scope 0 at $DIR/derefer_terminator_test.rs:+8:2: +8:2 |
| } |
| } |
| |