diff --git a/src/test/mir-opt/derefer_complex_case.main.Derefer.diff b/src/test/mir-opt/derefer_complex_case.main.Derefer.diff index 05d336be3bdcf..9affe5a50061d 100644 --- a/src/test/mir-opt/derefer_complex_case.main.Derefer.diff +++ b/src/test/mir-opt/derefer_complex_case.main.Derefer.diff @@ -2,110 +2,110 @@ + // MIR for `main` after Derefer fn main() -> () { - let mut _0: (); // return place in scope 0 at $DIR/derefer_complex_case.rs:3:11: 3:11 - let mut _1: std::slice::Iter; // in scope 0 at $DIR/derefer_complex_case.rs:4:17: 4:26 - let mut _2: &[i32; 2]; // in scope 0 at $DIR/derefer_complex_case.rs:4:17: 4:26 - let _3: [i32; 2]; // in scope 0 at $DIR/derefer_complex_case.rs:4:18: 4:26 - let mut _4: std::slice::Iter; // in scope 0 at $DIR/derefer_complex_case.rs:4:17: 4:26 - let mut _5: (); // in scope 0 at $DIR/derefer_complex_case.rs:3:1: 5:2 - let _6: (); // in scope 0 at $DIR/derefer_complex_case.rs:4:17: 4:26 - let mut _7: std::option::Option<&i32>; // in scope 0 at $DIR/derefer_complex_case.rs:4:17: 4:26 - let mut _8: &mut std::slice::Iter; // in scope 0 at $DIR/derefer_complex_case.rs:4:17: 4:26 - let mut _9: &mut std::slice::Iter; // in scope 0 at $DIR/derefer_complex_case.rs:4:17: 4:26 - let mut _10: isize; // in scope 0 at $DIR/derefer_complex_case.rs:4:5: 4:40 - let mut _11: !; // in scope 0 at $DIR/derefer_complex_case.rs:4:5: 4:40 - let mut _13: i32; // in scope 0 at $DIR/derefer_complex_case.rs:4:34: 4:37 - let mut _14: &[i32; 2]; // in scope 0 at $DIR/derefer_complex_case.rs:4:17: 4:26 -+ let mut _15: &i32; // in scope 0 at $DIR/derefer_complex_case.rs:4:17: 4:26 + let mut _0: (); // return place in scope 0 at $DIR/derefer_complex_case.rs:4:11: 4:11 + let mut _1: std::slice::Iter; // in scope 0 at $DIR/derefer_complex_case.rs:5:17: 5:26 + let mut _2: &[i32; 2]; // in scope 0 at $DIR/derefer_complex_case.rs:5:17: 5:26 + let _3: [i32; 2]; // in scope 0 at $DIR/derefer_complex_case.rs:5:18: 5:26 + let mut _4: std::slice::Iter; // in scope 0 at $DIR/derefer_complex_case.rs:5:17: 5:26 + let mut _5: (); // in scope 0 at $DIR/derefer_complex_case.rs:4:1: 6:2 + let _6: (); // in scope 0 at $DIR/derefer_complex_case.rs:5:17: 5:26 + let mut _7: std::option::Option<&i32>; // in scope 0 at $DIR/derefer_complex_case.rs:5:17: 5:26 + let mut _8: &mut std::slice::Iter; // in scope 0 at $DIR/derefer_complex_case.rs:5:17: 5:26 + let mut _9: &mut std::slice::Iter; // in scope 0 at $DIR/derefer_complex_case.rs:5:17: 5:26 + let mut _10: isize; // in scope 0 at $DIR/derefer_complex_case.rs:5:5: 5:40 + let mut _11: !; // in scope 0 at $DIR/derefer_complex_case.rs:5:5: 5:40 + let mut _13: i32; // in scope 0 at $DIR/derefer_complex_case.rs:5:34: 5:37 + let mut _14: &[i32; 2]; // in scope 0 at $DIR/derefer_complex_case.rs:5:17: 5:26 ++ let mut _15: &i32; // in scope 0 at $DIR/derefer_complex_case.rs:5:17: 5:26 scope 1 { - debug iter => _4; // in scope 1 at $DIR/derefer_complex_case.rs:4:17: 4:26 - let _12: i32; // in scope 1 at $DIR/derefer_complex_case.rs:4:10: 4:13 + debug iter => _4; // in scope 1 at $DIR/derefer_complex_case.rs:5:17: 5:26 + let _12: i32; // in scope 1 at $DIR/derefer_complex_case.rs:5:10: 5:13 scope 2 { - debug foo => _12; // in scope 2 at $DIR/derefer_complex_case.rs:4:10: 4:13 + debug foo => _12; // in scope 2 at $DIR/derefer_complex_case.rs:5:10: 5:13 } } bb0: { - StorageLive(_1); // scope 0 at $DIR/derefer_complex_case.rs:4:17: 4:26 - StorageLive(_2); // scope 0 at $DIR/derefer_complex_case.rs:4:17: 4:26 - _14 = const main::promoted[0]; // scope 0 at $DIR/derefer_complex_case.rs:4:17: 4:26 + StorageLive(_1); // scope 0 at $DIR/derefer_complex_case.rs:5:17: 5:26 + StorageLive(_2); // scope 0 at $DIR/derefer_complex_case.rs:5:17: 5:26 + _14 = const main::promoted[0]; // scope 0 at $DIR/derefer_complex_case.rs:5:17: 5:26 // mir::Constant - // + span: $DIR/derefer_complex_case.rs:4:17: 4:26 + // + span: $DIR/derefer_complex_case.rs:5:17: 5:26 // + literal: Const { ty: &[i32; 2], val: Unevaluated(main, [], Some(promoted[0])) } - _2 = &(*_14); // scope 0 at $DIR/derefer_complex_case.rs:4:17: 4:26 - _1 = <&[i32; 2] as IntoIterator>::into_iter(move _2) -> bb1; // scope 0 at $DIR/derefer_complex_case.rs:4:17: 4:26 + _2 = &(*_14); // scope 0 at $DIR/derefer_complex_case.rs:5:17: 5:26 + _1 = <&[i32; 2] as IntoIterator>::into_iter(move _2) -> bb1; // scope 0 at $DIR/derefer_complex_case.rs:5:17: 5:26 // mir::Constant - // + span: $DIR/derefer_complex_case.rs:4:17: 4:26 + // + span: $DIR/derefer_complex_case.rs:5:17: 5:26 // + literal: Const { ty: fn(&[i32; 2]) -> <&[i32; 2] as IntoIterator>::IntoIter {<&[i32; 2] as IntoIterator>::into_iter}, val: Value() } } bb1: { - StorageDead(_2); // scope 0 at $DIR/derefer_complex_case.rs:4:25: 4:26 - StorageLive(_4); // scope 0 at $DIR/derefer_complex_case.rs:4:17: 4:26 - _4 = move _1; // scope 0 at $DIR/derefer_complex_case.rs:4:17: 4:26 - goto -> bb2; // scope 1 at $DIR/derefer_complex_case.rs:4:5: 4:40 + StorageDead(_2); // scope 0 at $DIR/derefer_complex_case.rs:5:25: 5:26 + StorageLive(_4); // scope 0 at $DIR/derefer_complex_case.rs:5:17: 5:26 + _4 = move _1; // scope 0 at $DIR/derefer_complex_case.rs:5:17: 5:26 + goto -> bb2; // scope 1 at $DIR/derefer_complex_case.rs:5:5: 5:40 } bb2: { - StorageLive(_6); // scope 1 at $DIR/derefer_complex_case.rs:4:17: 4:26 - StorageLive(_7); // scope 1 at $DIR/derefer_complex_case.rs:4:17: 4:26 - StorageLive(_8); // scope 1 at $DIR/derefer_complex_case.rs:4:17: 4:26 - StorageLive(_9); // scope 1 at $DIR/derefer_complex_case.rs:4:17: 4:26 - _9 = &mut _4; // scope 1 at $DIR/derefer_complex_case.rs:4:17: 4:26 - _8 = &mut (*_9); // scope 1 at $DIR/derefer_complex_case.rs:4:17: 4:26 - _7 = as Iterator>::next(move _8) -> bb3; // scope 1 at $DIR/derefer_complex_case.rs:4:17: 4:26 + StorageLive(_6); // scope 1 at $DIR/derefer_complex_case.rs:5:17: 5:26 + StorageLive(_7); // scope 1 at $DIR/derefer_complex_case.rs:5:17: 5:26 + StorageLive(_8); // scope 1 at $DIR/derefer_complex_case.rs:5:17: 5:26 + StorageLive(_9); // scope 1 at $DIR/derefer_complex_case.rs:5:17: 5:26 + _9 = &mut _4; // scope 1 at $DIR/derefer_complex_case.rs:5:17: 5:26 + _8 = &mut (*_9); // scope 1 at $DIR/derefer_complex_case.rs:5:17: 5:26 + _7 = as Iterator>::next(move _8) -> bb3; // scope 1 at $DIR/derefer_complex_case.rs:5:17: 5:26 // mir::Constant - // + span: $DIR/derefer_complex_case.rs:4:17: 4:26 + // + span: $DIR/derefer_complex_case.rs:5:17: 5:26 // + literal: Const { ty: for<'r> fn(&'r mut std::slice::Iter) -> Option< as Iterator>::Item> { as Iterator>::next}, val: Value() } } bb3: { - StorageDead(_8); // scope 1 at $DIR/derefer_complex_case.rs:4:25: 4:26 - _10 = discriminant(_7); // scope 1 at $DIR/derefer_complex_case.rs:4:17: 4:26 - switchInt(move _10) -> [0_isize: bb6, 1_isize: bb4, otherwise: bb5]; // scope 1 at $DIR/derefer_complex_case.rs:4:17: 4:26 + StorageDead(_8); // scope 1 at $DIR/derefer_complex_case.rs:5:25: 5:26 + _10 = discriminant(_7); // scope 1 at $DIR/derefer_complex_case.rs:5:17: 5:26 + switchInt(move _10) -> [0_isize: bb6, 1_isize: bb4, otherwise: bb5]; // scope 1 at $DIR/derefer_complex_case.rs:5:17: 5:26 } bb4: { - StorageLive(_12); // scope 1 at $DIR/derefer_complex_case.rs:4:10: 4:13 -- _12 = (*((_7 as Some).0: &i32)); // scope 1 at $DIR/derefer_complex_case.rs:4:10: 4:13 -+ StorageLive(_15); // scope 1 at $DIR/derefer_complex_case.rs:4:10: 4:13 -+ _15 = deref_copy ((_7 as Some).0: &i32); // scope 1 at $DIR/derefer_complex_case.rs:4:10: 4:13 -+ _12 = (*_15); // scope 1 at $DIR/derefer_complex_case.rs:4:10: 4:13 -+ StorageDead(_15); // scope 2 at $DIR/derefer_complex_case.rs:4:34: 4:37 - StorageLive(_13); // scope 2 at $DIR/derefer_complex_case.rs:4:34: 4:37 - _13 = _12; // scope 2 at $DIR/derefer_complex_case.rs:4:34: 4:37 - _6 = std::mem::drop::(move _13) -> bb7; // scope 2 at $DIR/derefer_complex_case.rs:4:29: 4:38 + StorageLive(_12); // scope 1 at $DIR/derefer_complex_case.rs:5:10: 5:13 +- _12 = (*((_7 as Some).0: &i32)); // scope 1 at $DIR/derefer_complex_case.rs:5:10: 5:13 ++ StorageLive(_15); // scope 1 at $DIR/derefer_complex_case.rs:5:10: 5:13 ++ _15 = deref_copy ((_7 as Some).0: &i32); // scope 1 at $DIR/derefer_complex_case.rs:5:10: 5:13 ++ _12 = (*_15); // scope 1 at $DIR/derefer_complex_case.rs:5:10: 5:13 ++ StorageDead(_15); // scope 2 at $DIR/derefer_complex_case.rs:5:34: 5:37 + StorageLive(_13); // scope 2 at $DIR/derefer_complex_case.rs:5:34: 5:37 + _13 = _12; // scope 2 at $DIR/derefer_complex_case.rs:5:34: 5:37 + _6 = std::mem::drop::(move _13) -> bb7; // scope 2 at $DIR/derefer_complex_case.rs:5:29: 5:38 // mir::Constant - // + span: $DIR/derefer_complex_case.rs:4:29: 4:33 + // + span: $DIR/derefer_complex_case.rs:5:29: 5:33 // + literal: Const { ty: fn(i32) {std::mem::drop::}, val: Value() } } bb5: { - unreachable; // scope 1 at $DIR/derefer_complex_case.rs:4:17: 4:26 + unreachable; // scope 1 at $DIR/derefer_complex_case.rs:5:17: 5:26 } bb6: { - _0 = const (); // scope 1 at $DIR/derefer_complex_case.rs:4:5: 4:40 - StorageDead(_9); // scope 1 at $DIR/derefer_complex_case.rs:4:39: 4:40 - StorageDead(_7); // scope 1 at $DIR/derefer_complex_case.rs:4:39: 4:40 - StorageDead(_6); // scope 1 at $DIR/derefer_complex_case.rs:4:39: 4:40 - StorageDead(_4); // scope 0 at $DIR/derefer_complex_case.rs:4:39: 4:40 - StorageDead(_1); // scope 0 at $DIR/derefer_complex_case.rs:4:39: 4:40 - return; // scope 0 at $DIR/derefer_complex_case.rs:5:2: 5:2 + _0 = const (); // scope 1 at $DIR/derefer_complex_case.rs:5:5: 5:40 + StorageDead(_9); // scope 1 at $DIR/derefer_complex_case.rs:5:39: 5:40 + StorageDead(_7); // scope 1 at $DIR/derefer_complex_case.rs:5:39: 5:40 + StorageDead(_6); // scope 1 at $DIR/derefer_complex_case.rs:5:39: 5:40 + StorageDead(_4); // scope 0 at $DIR/derefer_complex_case.rs:5:39: 5:40 + StorageDead(_1); // scope 0 at $DIR/derefer_complex_case.rs:5:39: 5:40 + return; // scope 0 at $DIR/derefer_complex_case.rs:6:2: 6:2 } bb7: { - StorageDead(_13); // scope 2 at $DIR/derefer_complex_case.rs:4:37: 4:38 - StorageDead(_12); // scope 1 at $DIR/derefer_complex_case.rs:4:39: 4:40 - StorageDead(_9); // scope 1 at $DIR/derefer_complex_case.rs:4:39: 4:40 - StorageDead(_7); // scope 1 at $DIR/derefer_complex_case.rs:4:39: 4:40 - StorageDead(_6); // scope 1 at $DIR/derefer_complex_case.rs:4:39: 4:40 - _5 = const (); // scope 1 at $DIR/derefer_complex_case.rs:4:5: 4:40 - goto -> bb2; // scope 1 at $DIR/derefer_complex_case.rs:4:5: 4:40 + StorageDead(_13); // scope 2 at $DIR/derefer_complex_case.rs:5:37: 5:38 + StorageDead(_12); // scope 1 at $DIR/derefer_complex_case.rs:5:39: 5:40 + StorageDead(_9); // scope 1 at $DIR/derefer_complex_case.rs:5:39: 5:40 + StorageDead(_7); // scope 1 at $DIR/derefer_complex_case.rs:5:39: 5:40 + StorageDead(_6); // scope 1 at $DIR/derefer_complex_case.rs:5:39: 5:40 + _5 = const (); // scope 1 at $DIR/derefer_complex_case.rs:5:5: 5:40 + goto -> bb2; // scope 1 at $DIR/derefer_complex_case.rs:5:5: 5:40 + } + + bb8 (cleanup): { -+ resume; // scope 0 at $DIR/derefer_complex_case.rs:3:1: 5:2 ++ resume; // scope 0 at $DIR/derefer_complex_case.rs:4:1: 6:2 } } diff --git a/src/test/mir-opt/derefer_complex_case.rs b/src/test/mir-opt/derefer_complex_case.rs index 6abf49f9966ce..48bec39074c89 100644 --- a/src/test/mir-opt/derefer_complex_case.rs +++ b/src/test/mir-opt/derefer_complex_case.rs @@ -1,4 +1,5 @@ // EMIT_MIR derefer_complex_case.main.Derefer.diff +// ignore-wasm32 fn main() { for &foo in &[42, 43] { drop(foo) } diff --git a/src/test/mir-opt/derefer_terminator_test.main.Derefer.diff b/src/test/mir-opt/derefer_terminator_test.main.Derefer.diff index b26b347855173..003803fbd5ca9 100644 --- a/src/test/mir-opt/derefer_terminator_test.main.Derefer.diff +++ b/src/test/mir-opt/derefer_terminator_test.main.Derefer.diff @@ -2,102 +2,102 @@ + // MIR for `main` after Derefer fn main() -> () { - let mut _0: (); // return place in scope 0 at $DIR/derefer_terminator_test.rs:2:11: 2:11 - let _1: bool; // in scope 0 at $DIR/derefer_terminator_test.rs:3:9: 3:10 - let _3: (); // in scope 0 at $DIR/derefer_terminator_test.rs:5:5: 8:6 - let mut _4: &&&&bool; // in scope 0 at $DIR/derefer_terminator_test.rs:5:15: 5:22 - let _5: &&&bool; // in scope 0 at $DIR/derefer_terminator_test.rs:5:17: 5:21 - let _6: &&bool; // in scope 0 at $DIR/derefer_terminator_test.rs:5:18: 5:21 - let _7: &bool; // in scope 0 at $DIR/derefer_terminator_test.rs:5:19: 5:21 -+ let mut _10: &&&bool; // in scope 0 at $DIR/derefer_terminator_test.rs:5:15: 5:22 -+ let mut _11: &&bool; // in scope 0 at $DIR/derefer_terminator_test.rs:5:15: 5:22 -+ let mut _12: &bool; // in scope 0 at $DIR/derefer_terminator_test.rs:5:15: 5:22 + let mut _0: (); // return place in scope 0 at $DIR/derefer_terminator_test.rs:4:11: 4:11 + let _1: bool; // in scope 0 at $DIR/derefer_terminator_test.rs:5:9: 5:10 + let _3: (); // in scope 0 at $DIR/derefer_terminator_test.rs:7:5: 10:6 + let mut _4: &&&&bool; // in scope 0 at $DIR/derefer_terminator_test.rs:7:15: 7:22 + let _5: &&&bool; // in scope 0 at $DIR/derefer_terminator_test.rs:7:17: 7:21 + let _6: &&bool; // in scope 0 at $DIR/derefer_terminator_test.rs:7:18: 7:21 + let _7: &bool; // in scope 0 at $DIR/derefer_terminator_test.rs:7:19: 7:21 ++ let mut _10: &&&bool; // in scope 0 at $DIR/derefer_terminator_test.rs:7:15: 7:22 ++ let mut _11: &&bool; // in scope 0 at $DIR/derefer_terminator_test.rs:7:15: 7:22 ++ let mut _12: &bool; // in scope 0 at $DIR/derefer_terminator_test.rs:7:15: 7:22 scope 1 { - debug b => _1; // in scope 1 at $DIR/derefer_terminator_test.rs:3:9: 3:10 - let _2: bool; // in scope 1 at $DIR/derefer_terminator_test.rs:4:9: 4:10 + debug b => _1; // in scope 1 at $DIR/derefer_terminator_test.rs:5:9: 5:10 + let _2: bool; // in scope 1 at $DIR/derefer_terminator_test.rs:6:9: 6:10 scope 2 { - debug d => _2; // in scope 2 at $DIR/derefer_terminator_test.rs:4:9: 4:10 - let _8: i32; // in scope 2 at $DIR/derefer_terminator_test.rs:6:22: 6:23 - let _9: i32; // in scope 2 at $DIR/derefer_terminator_test.rs:9:9: 9:10 + debug d => _2; // in scope 2 at $DIR/derefer_terminator_test.rs:6:9: 6:10 + let _8: i32; // in scope 2 at $DIR/derefer_terminator_test.rs:8:22: 8:23 + let _9: i32; // in scope 2 at $DIR/derefer_terminator_test.rs:11:9: 11:10 scope 3 { - debug x => _8; // in scope 3 at $DIR/derefer_terminator_test.rs:6:22: 6:23 + debug x => _8; // in scope 3 at $DIR/derefer_terminator_test.rs:8:22: 8:23 } scope 4 { - debug y => _9; // in scope 4 at $DIR/derefer_terminator_test.rs:9:9: 9:10 + debug y => _9; // in scope 4 at $DIR/derefer_terminator_test.rs:11:9: 11:10 } } } bb0: { - StorageLive(_1); // scope 0 at $DIR/derefer_terminator_test.rs:3:9: 3:10 - _1 = foo() -> bb1; // scope 0 at $DIR/derefer_terminator_test.rs:3:13: 3:18 + StorageLive(_1); // scope 0 at $DIR/derefer_terminator_test.rs:5:9: 5:10 + _1 = foo() -> bb1; // scope 0 at $DIR/derefer_terminator_test.rs:5:13: 5:18 // mir::Constant - // + span: $DIR/derefer_terminator_test.rs:3:13: 3:16 + // + span: $DIR/derefer_terminator_test.rs:5:13: 5:16 // + literal: Const { ty: fn() -> bool {foo}, val: Value() } } bb1: { - StorageLive(_2); // scope 1 at $DIR/derefer_terminator_test.rs:4:9: 4:10 - _2 = foo() -> bb2; // scope 1 at $DIR/derefer_terminator_test.rs:4:13: 4:18 + StorageLive(_2); // scope 1 at $DIR/derefer_terminator_test.rs:6:9: 6:10 + _2 = foo() -> bb2; // scope 1 at $DIR/derefer_terminator_test.rs:6:13: 6:18 // mir::Constant - // + span: $DIR/derefer_terminator_test.rs:4:13: 4:16 + // + span: $DIR/derefer_terminator_test.rs:6:13: 6:16 // + literal: Const { ty: fn() -> bool {foo}, val: Value() } } bb2: { - StorageLive(_3); // scope 2 at $DIR/derefer_terminator_test.rs:5:5: 8:6 - StorageLive(_4); // scope 2 at $DIR/derefer_terminator_test.rs:5:15: 5:22 - StorageLive(_5); // scope 2 at $DIR/derefer_terminator_test.rs:5:17: 5:21 - StorageLive(_6); // scope 2 at $DIR/derefer_terminator_test.rs:5:18: 5:21 - StorageLive(_7); // scope 2 at $DIR/derefer_terminator_test.rs:5:19: 5:21 - _7 = &_1; // scope 2 at $DIR/derefer_terminator_test.rs:5:19: 5:21 - _6 = &_7; // scope 2 at $DIR/derefer_terminator_test.rs:5:18: 5:21 - _5 = &_6; // scope 2 at $DIR/derefer_terminator_test.rs:5:17: 5:21 - _4 = &_5; // scope 2 at $DIR/derefer_terminator_test.rs:5:15: 5:22 -- switchInt((*(*(*(*_4))))) -> [false: bb3, otherwise: bb4]; // scope 2 at $DIR/derefer_terminator_test.rs:5:5: 5:22 -+ StorageLive(_10); // scope 2 at $DIR/derefer_terminator_test.rs:5:5: 5:22 -+ _10 = deref_copy (*_4); // scope 2 at $DIR/derefer_terminator_test.rs:5:5: 5:22 -+ StorageLive(_11); // scope 2 at $DIR/derefer_terminator_test.rs:5:5: 5:22 -+ _11 = deref_copy (*_10); // scope 2 at $DIR/derefer_terminator_test.rs:5:5: 5:22 -+ StorageDead(_10); // scope 2 at $DIR/derefer_terminator_test.rs:5:5: 5:22 -+ StorageLive(_12); // scope 2 at $DIR/derefer_terminator_test.rs:5:5: 5:22 -+ _12 = deref_copy (*_11); // scope 2 at $DIR/derefer_terminator_test.rs:5:5: 5:22 -+ StorageDead(_11); // scope 2 at $DIR/derefer_terminator_test.rs:5:5: 5:22 -+ switchInt((*_12)) -> [false: bb3, otherwise: bb4]; // scope 2 at $DIR/derefer_terminator_test.rs:5:5: 5:22 + StorageLive(_3); // scope 2 at $DIR/derefer_terminator_test.rs:7:5: 10:6 + StorageLive(_4); // scope 2 at $DIR/derefer_terminator_test.rs:7:15: 7:22 + StorageLive(_5); // scope 2 at $DIR/derefer_terminator_test.rs:7:17: 7:21 + StorageLive(_6); // scope 2 at $DIR/derefer_terminator_test.rs:7:18: 7:21 + StorageLive(_7); // scope 2 at $DIR/derefer_terminator_test.rs:7:19: 7:21 + _7 = &_1; // scope 2 at $DIR/derefer_terminator_test.rs:7:19: 7:21 + _6 = &_7; // scope 2 at $DIR/derefer_terminator_test.rs:7:18: 7:21 + _5 = &_6; // scope 2 at $DIR/derefer_terminator_test.rs:7:17: 7:21 + _4 = &_5; // scope 2 at $DIR/derefer_terminator_test.rs:7:15: 7:22 +- switchInt((*(*(*(*_4))))) -> [false: bb3, otherwise: bb4]; // scope 2 at $DIR/derefer_terminator_test.rs:7:5: 7:22 ++ StorageLive(_10); // scope 2 at $DIR/derefer_terminator_test.rs:7:5: 7:22 ++ _10 = deref_copy (*_4); // scope 2 at $DIR/derefer_terminator_test.rs:7:5: 7:22 ++ StorageLive(_11); // scope 2 at $DIR/derefer_terminator_test.rs:7:5: 7:22 ++ _11 = deref_copy (*_10); // scope 2 at $DIR/derefer_terminator_test.rs:7:5: 7:22 ++ StorageDead(_10); // scope 2 at $DIR/derefer_terminator_test.rs:7:5: 7:22 ++ StorageLive(_12); // scope 2 at $DIR/derefer_terminator_test.rs:7:5: 7:22 ++ _12 = deref_copy (*_11); // scope 2 at $DIR/derefer_terminator_test.rs:7:5: 7:22 ++ StorageDead(_11); // scope 2 at $DIR/derefer_terminator_test.rs:7:5: 7:22 ++ switchInt((*_12)) -> [false: bb3, otherwise: bb4]; // scope 2 at $DIR/derefer_terminator_test.rs:7:5: 7:22 } bb3: { -+ StorageDead(_12); // scope 2 at $DIR/derefer_terminator_test.rs:5:5: 5:22 - _3 = const (); // scope 2 at $DIR/derefer_terminator_test.rs:7:18: 7:20 - goto -> bb5; // scope 2 at $DIR/derefer_terminator_test.rs:7:18: 7:20 ++ StorageDead(_12); // scope 2 at $DIR/derefer_terminator_test.rs:7:5: 7:22 + _3 = const (); // scope 2 at $DIR/derefer_terminator_test.rs:9:18: 9:20 + goto -> bb5; // scope 2 at $DIR/derefer_terminator_test.rs:9:18: 9:20 } bb4: { -+ StorageDead(_12); // scope 2 at $DIR/derefer_terminator_test.rs:5:5: 5:22 - StorageLive(_8); // scope 2 at $DIR/derefer_terminator_test.rs:6:22: 6:23 - _8 = const 5_i32; // scope 2 at $DIR/derefer_terminator_test.rs:6:26: 6:27 - _3 = const (); // scope 2 at $DIR/derefer_terminator_test.rs:6:17: 6:29 - StorageDead(_8); // scope 2 at $DIR/derefer_terminator_test.rs:6:28: 6:29 - goto -> bb5; // scope 2 at $DIR/derefer_terminator_test.rs:6:28: 6:29 ++ StorageDead(_12); // scope 2 at $DIR/derefer_terminator_test.rs:7:5: 7:22 + StorageLive(_8); // scope 2 at $DIR/derefer_terminator_test.rs:8:22: 8:23 + _8 = const 5_i32; // scope 2 at $DIR/derefer_terminator_test.rs:8:26: 8:27 + _3 = const (); // scope 2 at $DIR/derefer_terminator_test.rs:8:17: 8:29 + StorageDead(_8); // scope 2 at $DIR/derefer_terminator_test.rs:8:28: 8:29 + goto -> bb5; // scope 2 at $DIR/derefer_terminator_test.rs:8:28: 8:29 } bb5: { - StorageDead(_7); // scope 2 at $DIR/derefer_terminator_test.rs:8:5: 8:6 - StorageDead(_6); // scope 2 at $DIR/derefer_terminator_test.rs:8:5: 8:6 - StorageDead(_5); // scope 2 at $DIR/derefer_terminator_test.rs:8:5: 8:6 - StorageDead(_4); // scope 2 at $DIR/derefer_terminator_test.rs:8:5: 8:6 - StorageDead(_3); // scope 2 at $DIR/derefer_terminator_test.rs:8:5: 8:6 - StorageLive(_9); // scope 2 at $DIR/derefer_terminator_test.rs:9:9: 9:10 - _9 = const 42_i32; // scope 2 at $DIR/derefer_terminator_test.rs:9:13: 9:15 - _0 = const (); // scope 0 at $DIR/derefer_terminator_test.rs:2:11: 10:2 - StorageDead(_9); // scope 2 at $DIR/derefer_terminator_test.rs:10:1: 10:2 - StorageDead(_2); // scope 1 at $DIR/derefer_terminator_test.rs:10:1: 10:2 - StorageDead(_1); // scope 0 at $DIR/derefer_terminator_test.rs:10:1: 10:2 - return; // scope 0 at $DIR/derefer_terminator_test.rs:10:2: 10:2 + StorageDead(_7); // scope 2 at $DIR/derefer_terminator_test.rs:10:5: 10:6 + StorageDead(_6); // scope 2 at $DIR/derefer_terminator_test.rs:10:5: 10:6 + StorageDead(_5); // scope 2 at $DIR/derefer_terminator_test.rs:10:5: 10:6 + StorageDead(_4); // scope 2 at $DIR/derefer_terminator_test.rs:10:5: 10:6 + StorageDead(_3); // scope 2 at $DIR/derefer_terminator_test.rs:10:5: 10:6 + StorageLive(_9); // scope 2 at $DIR/derefer_terminator_test.rs:11:9: 11:10 + _9 = const 42_i32; // scope 2 at $DIR/derefer_terminator_test.rs:11:13: 11:15 + _0 = const (); // scope 0 at $DIR/derefer_terminator_test.rs:4:11: 12:2 + StorageDead(_9); // scope 2 at $DIR/derefer_terminator_test.rs:12:1: 12:2 + StorageDead(_2); // scope 1 at $DIR/derefer_terminator_test.rs:12:1: 12:2 + StorageDead(_1); // scope 0 at $DIR/derefer_terminator_test.rs:12:1: 12:2 + return; // scope 0 at $DIR/derefer_terminator_test.rs:12:2: 12:2 + } + + bb6 (cleanup): { -+ resume; // scope 0 at $DIR/derefer_terminator_test.rs:2:1: 10:2 ++ resume; // scope 0 at $DIR/derefer_terminator_test.rs:4:1: 12:2 } } diff --git a/src/test/mir-opt/derefer_terminator_test.rs b/src/test/mir-opt/derefer_terminator_test.rs index 11f5b20636d54..787b14ae735d5 100644 --- a/src/test/mir-opt/derefer_terminator_test.rs +++ b/src/test/mir-opt/derefer_terminator_test.rs @@ -1,4 +1,6 @@ // EMIT_MIR derefer_terminator_test.main.Derefer.diff +// ignore-wasm32 + fn main() { let b = foo(); let d = foo();