mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-22 23:04:33 +00:00
164 lines
4.3 KiB
Diff
164 lines
4.3 KiB
Diff
- // MIR for `debuginfo` before ReferencePropagation
|
|
+ // MIR for `debuginfo` after ReferencePropagation
|
|
|
|
fn debuginfo() -> () {
|
|
let mut _0: ();
|
|
let _1: &mut u8;
|
|
let mut _2: u8;
|
|
let _4: debuginfo::T;
|
|
let _6: ();
|
|
let mut _7: std::option::Option<i32>;
|
|
let mut _8: isize;
|
|
let _10: ();
|
|
let mut _11: &[i32];
|
|
let _12: &[i32];
|
|
let mut _13: &[i32; 10];
|
|
let _14: [i32; 10];
|
|
let mut _15: std::ops::RangeFull;
|
|
let mut _16: usize;
|
|
let mut _17: usize;
|
|
let mut _18: bool;
|
|
let _23: &&mut u8;
|
|
let _24: &mut u8;
|
|
let mut _25: debuginfo::T;
|
|
scope 1 {
|
|
- debug ref_mut_u8 => _1;
|
|
+ debug ref_mut_u8 => &_2;
|
|
let _3: &u8;
|
|
let mut _28: &debuginfo::T;
|
|
scope 2 {
|
|
- debug field => _3;
|
|
+ debug field => &((*_28).0: u8);
|
|
let _5: &u8;
|
|
scope 3 {
|
|
- debug reborrow => _5;
|
|
+ debug reborrow => &_2;
|
|
let _9: &i32;
|
|
let _22: &&&mut u8;
|
|
let mut _27: &std::option::Option<i32>;
|
|
scope 4 {
|
|
- debug variant_field => _9;
|
|
+ debug variant_field => &(((*_27) as Some).0: i32);
|
|
}
|
|
scope 5 {
|
|
- debug constant_index => _19;
|
|
+ debug constant_index => &(*_11)[1 of 3];
|
|
debug subslice => _20;
|
|
debug constant_index_from_end => _21;
|
|
let _19: &i32;
|
|
let _20: &[i32];
|
|
let _21: &i32;
|
|
let mut _26: &[i32; 10];
|
|
}
|
|
scope 6 {
|
|
- debug multiple_borrow => _22;
|
|
+ debug multiple_borrow => &&&(_25.0: u8);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
bb0: {
|
|
- StorageLive(_1);
|
|
StorageLive(_2);
|
|
_2 = const 5_u8;
|
|
- _1 = &mut _2;
|
|
- StorageLive(_3);
|
|
_28 = const _;
|
|
- _3 = &((*_28).0: u8);
|
|
- StorageLive(_5);
|
|
- _5 = &(*_1);
|
|
- StorageLive(_6);
|
|
StorageLive(_7);
|
|
_7 = Option::<i32>::Some(const 0_i32);
|
|
_8 = discriminant(_7);
|
|
switchInt(move _8) -> [0: bb3, 1: bb1, otherwise: bb2];
|
|
}
|
|
|
|
bb1: {
|
|
- StorageLive(_9);
|
|
_27 = const _;
|
|
- _9 = &(((*_27) as Some).0: i32);
|
|
- _6 = const ();
|
|
- StorageDead(_9);
|
|
goto -> bb4;
|
|
}
|
|
|
|
bb2: {
|
|
unreachable;
|
|
}
|
|
|
|
bb3: {
|
|
- _6 = const ();
|
|
goto -> bb4;
|
|
}
|
|
|
|
bb4: {
|
|
StorageDead(_7);
|
|
- StorageDead(_6);
|
|
- StorageLive(_10);
|
|
StorageLive(_11);
|
|
StorageLive(_12);
|
|
StorageLive(_13);
|
|
_26 = const _;
|
|
_13 = &(*_26);
|
|
StorageLive(_15);
|
|
_15 = RangeFull;
|
|
_12 = <[i32; 10] as Index<RangeFull>>::index(move _13, move _15) -> [return: bb5, unwind continue];
|
|
}
|
|
|
|
bb5: {
|
|
StorageDead(_15);
|
|
StorageDead(_13);
|
|
_11 = &(*_12);
|
|
_16 = Len((*_11));
|
|
_17 = const 3_usize;
|
|
_18 = Ge(move _16, move _17);
|
|
switchInt(move _18) -> [0: bb7, otherwise: bb6];
|
|
}
|
|
|
|
bb6: {
|
|
- StorageLive(_19);
|
|
- _19 = &(*_11)[1 of 3];
|
|
StorageLive(_20);
|
|
_20 = &(*_11)[2:-1];
|
|
StorageLive(_21);
|
|
_21 = &(*_11)[-1 of 3];
|
|
- _10 = const ();
|
|
StorageDead(_21);
|
|
StorageDead(_20);
|
|
- StorageDead(_19);
|
|
goto -> bb8;
|
|
}
|
|
|
|
bb7: {
|
|
- _10 = const ();
|
|
goto -> bb8;
|
|
}
|
|
|
|
bb8: {
|
|
StorageDead(_12);
|
|
StorageDead(_11);
|
|
- StorageDead(_10);
|
|
- StorageLive(_22);
|
|
- StorageLive(_23);
|
|
- StorageLive(_24);
|
|
StorageLive(_25);
|
|
_25 = T(const 6_u8);
|
|
- _24 = &mut (_25.0: u8);
|
|
- _23 = &_24;
|
|
- _22 = &_23;
|
|
_0 = const ();
|
|
StorageDead(_25);
|
|
- StorageDead(_24);
|
|
- StorageDead(_23);
|
|
- StorageDead(_22);
|
|
- StorageDead(_5);
|
|
- StorageDead(_3);
|
|
StorageDead(_2);
|
|
- StorageDead(_1);
|
|
return;
|
|
}
|
|
}
|
|
|