- // MIR for `reference_propagation_const_ptr` before ReferencePropagation + // MIR for `reference_propagation_const_ptr` after ReferencePropagation fn reference_propagation_const_ptr(_1: *const T, _2: *const T) -> () { debug single => _1; debug multiple => _2; let mut _0: (); let _3: (); let _4: usize; let _7: (); let mut _8: (); let _9: (); let _10: usize; let mut _13: *const usize; let _15: (); let mut _16: (); let _17: (); let _18: usize; let _22: (); let mut _23: &*const usize; let _24: (); let _25: usize; let _29: (); let mut _30: *mut *const usize; let _31: (); let _32: usize; let _35: (); let mut _36: *const usize; let _37: (); let _38: usize; let _44: (); let mut _45: *const usize; let _46: (); let _47: *const T; let _49: (); let mut _50: (); let _51: (); let _52: *const T; let mut _53: *const T; let _55: (); let mut _56: (); let _57: (); let _58: usize; let _62: (); let mut _63: (); let _64: (); let _65: usize; let _69: (); let mut _70: (); let _71: usize; let _75: (); let mut _76: (); scope 1 { debug a => _4; let _5: *const usize; scope 2 { debug b => _5; let _6: usize; scope 3 { debug c => _6; } } } scope 4 { debug a => _10; let _11: usize; scope 5 { debug a2 => _11; let mut _12: *const usize; scope 6 { debug b => _12; let _14: usize; scope 7 { debug c => _14; } } } } scope 8 { debug a => _18; let _19: *const usize; scope 9 { debug b => _19; let _20: &*const usize; scope 10 { debug d => _20; let _21: usize; scope 11 { debug c => _21; } } } } scope 12 { debug a => _25; let mut _26: *const usize; scope 13 { debug b => _26; let _27: *mut *const usize; scope 14 { debug d => _27; let _28: usize; scope 15 { debug c => _28; } } } } scope 16 { debug a => _32; let _33: *const usize; scope 17 { debug b => _33; let _34: usize; scope 18 { debug c => _34; } } } scope 19 { debug a => _38; let _39: *const usize; scope 20 { debug b1 => _39; let _40: usize; scope 21 { debug c => _40; let _41: *const usize; scope 22 { debug b2 => _41; let _42: usize; scope 23 { debug c2 => _42; let _43: *const usize; scope 24 { debug b3 => _43; } } } } } } scope 25 { - debug a => _47; + debug a => _1; let _48: T; scope 26 { debug b => _48; } } scope 27 { debug a => _52; let _54: T; scope 28 { debug b => _54; } } scope 29 { debug a => _58; let _59: *const usize; scope 30 { debug b => _59; let _60: *const usize; scope 31 { debug c => _60; let _61: usize; scope 32 { debug e => _61; } } } } scope 33 { debug a => _65; let _66: *const usize; scope 34 { debug b => _66; let _67: &*const usize; scope 35 { debug d => _67; let _68: usize; scope 36 { debug c => _68; } } } } scope 37 { debug a => _71; let mut _72: *const usize; scope 38 { debug b => _72; let _73: &mut *const usize; scope 39 { debug d => _73; let _74: usize; scope 40 { debug c => _74; } } } } bb0: { - StorageLive(_3); StorageLive(_4); _4 = const 5_usize; StorageLive(_5); _5 = &raw const _4; StorageLive(_6); - _6 = copy (*_5); + _6 = copy _4; StorageLive(_7); StorageLive(_8); _8 = (); _7 = opaque::<()>(move _8) -> [return: bb1, unwind continue]; } bb1: { StorageDead(_8); StorageDead(_7); - _3 = const (); StorageDead(_6); StorageDead(_5); StorageDead(_4); - StorageDead(_3); - StorageLive(_9); StorageLive(_10); _10 = const 5_usize; StorageLive(_11); _11 = const 7_usize; StorageLive(_12); _12 = &raw const _10; StorageLive(_13); _13 = &raw const _11; _12 = move _13; StorageDead(_13); StorageLive(_14); _14 = copy (*_12); StorageLive(_15); StorageLive(_16); _16 = (); _15 = opaque::<()>(move _16) -> [return: bb2, unwind continue]; } bb2: { StorageDead(_16); StorageDead(_15); - _9 = const (); StorageDead(_14); StorageDead(_12); StorageDead(_11); StorageDead(_10); - StorageDead(_9); - StorageLive(_17); StorageLive(_18); _18 = const 5_usize; StorageLive(_19); _19 = &raw const _18; StorageLive(_20); _20 = &_19; StorageLive(_21); - _21 = copy (*_19); + _21 = copy _18; StorageLive(_22); StorageLive(_23); _23 = copy _20; _22 = opaque::<&*const usize>(move _23) -> [return: bb3, unwind continue]; } bb3: { StorageDead(_23); StorageDead(_22); - _17 = const (); StorageDead(_21); StorageDead(_20); StorageDead(_19); StorageDead(_18); - StorageDead(_17); - StorageLive(_24); StorageLive(_25); _25 = const 5_usize; StorageLive(_26); _26 = &raw const _25; StorageLive(_27); _27 = &raw mut _26; StorageLive(_28); _28 = copy (*_26); StorageLive(_29); StorageLive(_30); _30 = copy _27; _29 = opaque::<*mut *const usize>(move _30) -> [return: bb4, unwind continue]; } bb4: { StorageDead(_30); StorageDead(_29); - _24 = const (); StorageDead(_28); StorageDead(_27); StorageDead(_26); StorageDead(_25); - StorageDead(_24); - StorageLive(_31); StorageLive(_32); _32 = const 7_usize; StorageLive(_33); _33 = &raw const _32; StorageLive(_34); - _34 = copy (*_33); + _34 = copy _32; StorageLive(_35); StorageLive(_36); _36 = copy _33; _35 = opaque::<*const usize>(move _36) -> [return: bb5, unwind continue]; } bb5: { StorageDead(_36); StorageDead(_35); - _31 = const (); StorageDead(_34); StorageDead(_33); StorageDead(_32); - StorageDead(_31); - StorageLive(_37); StorageLive(_38); _38 = const 7_usize; StorageLive(_39); _39 = &raw const _38; StorageLive(_40); - _40 = copy (*_39); + _40 = copy _38; StorageLive(_41); _41 = copy _39; StorageLive(_42); - _42 = copy (*_41); + _42 = copy _38; StorageLive(_43); _43 = copy _41; StorageLive(_44); StorageLive(_45); _45 = copy _43; _44 = opaque::<*const usize>(move _45) -> [return: bb6, unwind continue]; } bb6: { StorageDead(_45); StorageDead(_44); - _37 = const (); StorageDead(_43); StorageDead(_42); StorageDead(_41); StorageDead(_40); StorageDead(_39); StorageDead(_38); - StorageDead(_37); - StorageLive(_46); - StorageLive(_47); - _47 = &raw const (*_1); StorageLive(_48); - _48 = copy (*_47); + _48 = copy (*_1); StorageLive(_49); StorageLive(_50); _50 = (); _49 = opaque::<()>(move _50) -> [return: bb7, unwind continue]; } bb7: { StorageDead(_50); StorageDead(_49); - _46 = const (); StorageDead(_48); - StorageDead(_47); - StorageDead(_46); - StorageLive(_51); StorageLive(_52); _52 = &raw const (*_2); StorageLive(_53); _53 = &raw const (*_1); _2 = move _53; StorageDead(_53); StorageLive(_54); _54 = copy (*_52); StorageLive(_55); StorageLive(_56); _56 = (); _55 = opaque::<()>(move _56) -> [return: bb8, unwind continue]; } bb8: { StorageDead(_56); StorageDead(_55); - _51 = const (); StorageDead(_54); StorageDead(_52); - StorageDead(_51); - StorageLive(_57); StorageLive(_58); _58 = const 13_usize; StorageLive(_59); _59 = &raw const _58; StorageLive(_60); - _60 = &raw const (*_59); + _60 = &raw const _58; StorageLive(_61); - _61 = copy (*_60); + _61 = copy _58; StorageLive(_62); StorageLive(_63); _63 = (); _62 = opaque::<()>(move _63) -> [return: bb9, unwind continue]; } bb9: { StorageDead(_63); StorageDead(_62); - _57 = const (); StorageDead(_61); StorageDead(_60); StorageDead(_59); StorageDead(_58); - StorageDead(_57); - StorageLive(_64); StorageLive(_65); _65 = const 5_usize; StorageLive(_66); _66 = &raw const _65; StorageLive(_67); _67 = &_66; StorageLive(_68); - _68 = copy (*_66); + _68 = copy _65; StorageLive(_69); StorageLive(_70); _70 = (); _69 = opaque::<()>(move _70) -> [return: bb10, unwind continue]; } bb10: { StorageDead(_70); StorageDead(_69); - _64 = const (); StorageDead(_68); StorageDead(_67); StorageDead(_66); StorageDead(_65); - StorageDead(_64); StorageLive(_71); _71 = const 5_usize; StorageLive(_72); _72 = &raw const _71; StorageLive(_73); _73 = &mut _72; StorageLive(_74); _74 = copy (*_72); StorageLive(_75); StorageLive(_76); _76 = (); _75 = opaque::<()>(move _76) -> [return: bb11, unwind continue]; } bb11: { StorageDead(_76); StorageDead(_75); _0 = const (); StorageDead(_74); StorageDead(_73); StorageDead(_72); StorageDead(_71); return; } }