mirror of https://github.com/rust-lang/rust
53 lines
1.4 KiB
Diff
53 lines
1.4 KiB
Diff
- // MIR for `main` before GVN
|
|
+ // MIR for `main` after GVN
|
|
|
|
fn main() -> () {
|
|
let mut _0: ();
|
|
let _1: *const [i32];
|
|
let mut _2: *const [i32; 3];
|
|
let _3: &[i32; 3];
|
|
let _4: [i32; 3];
|
|
let _6: usize;
|
|
let mut _7: usize;
|
|
let mut _8: bool;
|
|
let mut _9: &[i32; 3];
|
|
scope 1 {
|
|
debug a => _1;
|
|
let _5: i32;
|
|
scope 2 {
|
|
debug _b => _5;
|
|
}
|
|
}
|
|
|
|
bb0: {
|
|
StorageLive(_1);
|
|
StorageLive(_2);
|
|
StorageLive(_3);
|
|
_9 = const main::promoted[0];
|
|
_3 = &(*_9);
|
|
_2 = &raw const (*_3);
|
|
_1 = move _2 as *const [i32] (PointerCoercion(Unsize));
|
|
StorageDead(_2);
|
|
StorageDead(_3);
|
|
StorageLive(_5);
|
|
StorageLive(_6);
|
|
_6 = const 3_usize;
|
|
_7 = Len((*_1));
|
|
- _8 = Lt(_6, _7);
|
|
- assert(move _8, "index out of bounds: the length is {} but the index is {}", move _7, _6) -> [success: bb1, unwind unreachable];
|
|
+ _8 = Lt(const 3_usize, _7);
|
|
+ assert(move _8, "index out of bounds: the length is {} but the index is {}", move _7, const 3_usize) -> [success: bb1, unwind unreachable];
|
|
}
|
|
|
|
bb1: {
|
|
- _5 = (*_1)[_6];
|
|
+ _5 = (*_1)[3 of 4];
|
|
StorageDead(_6);
|
|
_0 = const ();
|
|
StorageDead(_5);
|
|
StorageDead(_1);
|
|
return;
|
|
}
|
|
}
|
|
|