1- // MIR for `test` before SimplifyComparisonIntegral 2+ // MIR for `test` after SimplifyComparisonIntegral 3 4 fn test(_1: T) -> () { 5 debug x => _1; // in scope 0 at $DIR/issue_76432.rs:6:38: 6:39 6 let mut _0: (); // return place in scope 0 at $DIR/issue_76432.rs:6:44: 6:44 7 let _2: &[T]; // in scope 0 at $DIR/issue_76432.rs:7:9: 7:10 8 let mut _3: &[T; 3]; // in scope 0 at $DIR/issue_76432.rs:7:19: 7:29 9 let _4: &[T; 3]; // in scope 0 at $DIR/issue_76432.rs:7:19: 7:29 10 let _5: [T; 3]; // in scope 0 at $DIR/issue_76432.rs:7:20: 7:29 11 let mut _6: T; // in scope 0 at $DIR/issue_76432.rs:7:21: 7:22 12 let mut _7: T; // in scope 0 at $DIR/issue_76432.rs:7:24: 7:25 13 let mut _8: T; // in scope 0 at $DIR/issue_76432.rs:7:27: 7:28 14 let _9: [*const T; 3]; // in scope 0 at $DIR/issue_76432.rs:8:5: 11:6 15 let mut _10: usize; // in scope 0 at $DIR/issue_76432.rs:9:9: 9:33 16 let mut _11: usize; // in scope 0 at $DIR/issue_76432.rs:9:9: 9:33 17 let mut _12: bool; // in scope 0 at $DIR/issue_76432.rs:9:9: 9:33 18 let mut _16: *const T; // in scope 0 at $DIR/issue_76432.rs:9:38: 9:52 19 let mut _17: *const T; // in scope 0 at $DIR/issue_76432.rs:9:38: 9:52 20 let mut _18: *const T; // in scope 0 at $DIR/issue_76432.rs:9:54: 9:68 21 let mut _19: *const T; // in scope 0 at $DIR/issue_76432.rs:9:54: 9:68 22 let mut _20: *const T; // in scope 0 at $DIR/issue_76432.rs:9:70: 9:84 23 let mut _21: *const T; // in scope 0 at $DIR/issue_76432.rs:9:70: 9:84 24 let mut _22: !; // in scope 0 at $SRC_DIR/core/src/panic.rs:LL:COL 25 let mut _23: &[T; 3]; // in scope 0 at $DIR/issue_76432.rs:7:19: 7:29 26 scope 1 { 27 debug v => _2; // in scope 1 at $DIR/issue_76432.rs:7:9: 7:10 28 let _13: &T; // in scope 1 at $DIR/issue_76432.rs:9:10: 9:16 29 let _14: &T; // in scope 1 at $DIR/issue_76432.rs:9:18: 9:24 30 let _15: &T; // in scope 1 at $DIR/issue_76432.rs:9:26: 9:32 31 scope 2 { 32 debug v1 => _13; // in scope 2 at $DIR/issue_76432.rs:9:10: 9:16 33 debug v2 => _14; // in scope 2 at $DIR/issue_76432.rs:9:18: 9:24 34 debug v3 => _15; // in scope 2 at $DIR/issue_76432.rs:9:26: 9:32 35 } 36 } 37 38 bb0: { 39 StorageLive(_2); // scope 0 at $DIR/issue_76432.rs:7:9: 7:10 40 StorageLive(_3); // scope 0 at $DIR/issue_76432.rs:7:19: 7:29 41 StorageLive(_4); // scope 0 at $DIR/issue_76432.rs:7:19: 7:29 42 StorageLive(_5); // scope 0 at $DIR/issue_76432.rs:7:20: 7:29 43 StorageLive(_6); // scope 0 at $DIR/issue_76432.rs:7:21: 7:22 44 _6 = _1; // scope 0 at $DIR/issue_76432.rs:7:21: 7:22 45 StorageLive(_7); // scope 0 at $DIR/issue_76432.rs:7:24: 7:25 46 _7 = _1; // scope 0 at $DIR/issue_76432.rs:7:24: 7:25 47 StorageLive(_8); // scope 0 at $DIR/issue_76432.rs:7:27: 7:28 48 _8 = _1; // scope 0 at $DIR/issue_76432.rs:7:27: 7:28 49 _5 = [move _6, move _7, move _8]; // scope 0 at $DIR/issue_76432.rs:7:20: 7:29 50 StorageDead(_8); // scope 0 at $DIR/issue_76432.rs:7:28: 7:29 51 StorageDead(_7); // scope 0 at $DIR/issue_76432.rs:7:28: 7:29 52 StorageDead(_6); // scope 0 at $DIR/issue_76432.rs:7:28: 7:29 53 _4 = &_5; // scope 0 at $DIR/issue_76432.rs:7:19: 7:29 54 _3 = _4; // scope 0 at $DIR/issue_76432.rs:7:19: 7:29 55 StorageLive(_23); // scope 0 at $DIR/issue_76432.rs:7:19: 7:29 56 _23 = _3; // scope 0 at $DIR/issue_76432.rs:7:19: 7:29 57 _2 = move _3 as &[T] (Pointer(Unsize)); // scope 0 at $DIR/issue_76432.rs:7:19: 7:29 58 StorageDead(_3); // scope 0 at $DIR/issue_76432.rs:7:28: 7:29 59 StorageDead(_4); // scope 0 at $DIR/issue_76432.rs:7:29: 7:30 60 StorageLive(_9); // scope 1 at $DIR/issue_76432.rs:8:5: 11:6 61 _10 = const 3_usize; // scope 1 at $DIR/issue_76432.rs:9:9: 9:33 62 StorageDead(_23); // scope 1 at $DIR/issue_76432.rs:9:9: 9:33 63 _11 = const 3_usize; // scope 1 at $DIR/issue_76432.rs:9:9: 9:33 64 _12 = const true; // scope 1 at $DIR/issue_76432.rs:9:9: 9:33 65 goto -> bb2; // scope 1 at $DIR/issue_76432.rs:9:9: 9:33 66 } 67 68 bb1: { 69 StorageLive(_22); // scope 1 at $SRC_DIR/core/src/panic.rs:LL:COL 70 core::panicking::panic(const "internal error: entered unreachable code"); // scope 1 at $SRC_DIR/core/src/panic.rs:LL:COL 71 // mir::Constant 72 // + span: $SRC_DIR/core/src/panic.rs:LL:COL 73 // + literal: Const { ty: fn(&'static str) -> ! {core::panicking::panic}, val: Value(Scalar(<ZST>)) } 74 // ty::Const 75 // + ty: &str 76 // + val: Value(Slice { data: Allocation { bytes: [105, 110, 116, 101, 114, 110, 97, 108, 32, 101, 114, 114, 111, 114, 58, 32, 101, 110, 116, 101, 114, 101, 100, 32, 117, 110, 114, 101, 97, 99, 104, 97, 98, 108, 101, 32, 99, 111, 100, 101], relocations: Relocations(SortedMap { data: [] }), init_mask: InitMask { blocks: [1099511627775], len: Size { raw: 40 } }, align: Align { pow2: 0 }, mutability: Not, extra: () }, start: 0, end: 40 }) 77 // mir::Constant 78 // + span: $SRC_DIR/core/src/macros/mod.rs:LL:COL 79 // + literal: Const { ty: &str, val: Value(Slice { data: Allocation { bytes: [105, 110, 116, 101, 114, 110, 97, 108, 32, 101, 114, 114, 111, 114, 58, 32, 101, 110, 116, 101, 114, 101, 100, 32, 117, 110, 114, 101, 97, 99, 104, 97, 98, 108, 101, 32, 99, 111, 100, 101], relocations: Relocations(SortedMap { data: [] }), init_mask: InitMask { blocks: [1099511627775], len: Size { raw: 40 } }, align: Align { pow2: 0 }, mutability: Not, extra: () }, start: 0, end: 40 }) } 80 } 81 82 bb2: { 83 StorageLive(_13); // scope 1 at $DIR/issue_76432.rs:9:10: 9:16 84 _13 = &(*_2)[0 of 3]; // scope 1 at $DIR/issue_76432.rs:9:10: 9:16 85 StorageLive(_14); // scope 1 at $DIR/issue_76432.rs:9:18: 9:24 86 _14 = &(*_2)[1 of 3]; // scope 1 at $DIR/issue_76432.rs:9:18: 9:24 87 StorageLive(_15); // scope 1 at $DIR/issue_76432.rs:9:26: 9:32 88 _15 = &(*_2)[2 of 3]; // scope 1 at $DIR/issue_76432.rs:9:26: 9:32 89 StorageLive(_16); // scope 2 at $DIR/issue_76432.rs:9:38: 9:52 90 StorageLive(_17); // scope 2 at $DIR/issue_76432.rs:9:38: 9:52 91 _17 = &raw const (*_13); // scope 2 at $DIR/issue_76432.rs:9:38: 9:40 92 _16 = _17; // scope 2 at $DIR/issue_76432.rs:9:38: 9:52 93 StorageLive(_18); // scope 2 at $DIR/issue_76432.rs:9:54: 9:68 94 StorageLive(_19); // scope 2 at $DIR/issue_76432.rs:9:54: 9:68 95 _19 = &raw const (*_14); // scope 2 at $DIR/issue_76432.rs:9:54: 9:56 96 _18 = _19; // scope 2 at $DIR/issue_76432.rs:9:54: 9:68 97 StorageLive(_20); // scope 2 at $DIR/issue_76432.rs:9:70: 9:84 98 StorageLive(_21); // scope 2 at $DIR/issue_76432.rs:9:70: 9:84 99 _21 = &raw const (*_15); // scope 2 at $DIR/issue_76432.rs:9:70: 9:72 100 _20 = _21; // scope 2 at $DIR/issue_76432.rs:9:70: 9:84 101 _9 = [move _16, move _18, move _20]; // scope 2 at $DIR/issue_76432.rs:9:37: 9:85 102 StorageDead(_21); // scope 2 at $DIR/issue_76432.rs:9:84: 9:85 103 StorageDead(_20); // scope 2 at $DIR/issue_76432.rs:9:84: 9:85 104 StorageDead(_19); // scope 2 at $DIR/issue_76432.rs:9:84: 9:85 105 StorageDead(_18); // scope 2 at $DIR/issue_76432.rs:9:84: 9:85 106 StorageDead(_17); // scope 2 at $DIR/issue_76432.rs:9:84: 9:85 107 StorageDead(_16); // scope 2 at $DIR/issue_76432.rs:9:84: 9:85 108 StorageDead(_15); // scope 1 at $DIR/issue_76432.rs:9:84: 9:85 109 StorageDead(_14); // scope 1 at $DIR/issue_76432.rs:9:84: 9:85 110 StorageDead(_13); // scope 1 at $DIR/issue_76432.rs:9:84: 9:85 111 StorageDead(_9); // scope 1 at $DIR/issue_76432.rs:11:6: 11:7 112 nop; // scope 0 at $DIR/issue_76432.rs:6:44: 12:2 113 StorageDead(_5); // scope 0 at $DIR/issue_76432.rs:12:1: 12:2 114 StorageDead(_2); // scope 0 at $DIR/issue_76432.rs:12:1: 12:2 115 return; // scope 0 at $DIR/issue_76432.rs:12:2: 12:2 116 } 117 } 118 119