// MIR for `mem_replace` after PreCodegen fn mem_replace(_1: &mut u32, _2: u32) -> u32 { debug r => _1; debug v => _2; let mut _0: u32; scope 1 (inlined std::mem::replace::) { debug dest => _1; debug src => _2; scope 2 { scope 3 { debug result => _0; scope 16 (inlined std::ptr::write::) { debug dst => _1; debug src => _2; scope 17 { } } } scope 4 (inlined std::ptr::read::) { debug src => _1; scope 5 { scope 6 (inlined std::ptr::read::runtime::) { debug src => _1; scope 7 (inlined intrinsics::is_aligned_and_not_null::) { debug ptr => _1; scope 8 (inlined ptr::const_ptr::::is_null) { debug self => _1; let mut _3: *const u8; scope 9 { scope 10 (inlined ptr::const_ptr::::is_null::runtime_impl) { debug ptr => _3; scope 11 (inlined ptr::const_ptr::::addr) { debug self => _3; scope 12 { scope 13 (inlined ptr::const_ptr::::cast::<()>) { debug self => _3; } } } } } } scope 14 (inlined ptr::const_ptr::::is_aligned) { debug self => _1; scope 15 (inlined align_of::) { } } } } } } } } bb0: { StorageLive(_3); _0 = (*_1); StorageDead(_3); (*_1) = _2; return; } }