- // MIR for `maybe_dead` before ReferencePropagation + // MIR for `maybe_dead` after ReferencePropagation fn maybe_dead(_1: bool) -> () { let mut _0: (); let mut _2: i32; let mut _3: i32; let mut _4: &i32; let mut _5: &mut i32; let mut _6: i32; let mut _7: i32; let mut _8: i32; bb0: { StorageLive(_2); StorageLive(_3); _2 = const 5_i32; _3 = const 5_i32; _4 = &_2; _5 = &mut _3; (*_5) = const 7_i32; - _6 = (*_4); + _6 = _2; switchInt(_1) -> [1: bb1, otherwise: bb2]; } bb1: { StorageDead(_2); StorageDead(_3); _0 = opaque::(_6) -> [return: bb2, unwind continue]; } bb2: { _7 = (*_4); _0 = opaque::(_7) -> [return: bb3, unwind continue]; } bb3: { _8 = (*_5); _0 = opaque::(_8) -> [return: bb4, unwind continue]; } bb4: { return; } }