| // MIR for `unaligned_copy_generic` after runtime-optimized | |
| fn unaligned_copy_generic(_1: *const T, _2: *mut T) -> () { | |
| debug src => _1; | |
| debug dst => _2; | |
| let mut _0: (); | |
| let _5: T; | |
| scope 1 { | |
| debug val => _5; | |
| scope 8 (inlined #[track_caller] write_unaligned::<T>) { | |
| let _6: *mut std::ptr::Unaligned<T>; | |
| scope 9 { | |
| let _7: std::ptr::Unaligned<T>; | |
| scope 10 { | |
| scope 12 (inlined #[track_caller] std::ptr::write::<std::ptr::Unaligned<T>>) { | |
| } | |
| } | |
| } | |
| scope 11 (inlined std::ptr::mut_ptr::<impl *mut T>::cast::<std::ptr::Unaligned<T>>) { | |
| } | |
| } | |
| } | |
| scope 2 (inlined #[track_caller] read_unaligned::<T>) { | |
| let _3: *const std::ptr::Unaligned<T>; | |
| scope 3 { | |
| let _4: std::ptr::Unaligned<T>; | |
| scope 4 { | |
| scope 7 (inlined transmute_neo::<std::ptr::Unaligned<T>, T>) { | |
| } | |
| } | |
| scope 6 (inlined #[track_caller] std::ptr::read::<std::ptr::Unaligned<T>>) { | |
| } | |
| } | |
| scope 5 (inlined std::ptr::const_ptr::<impl *const T>::cast::<std::ptr::Unaligned<T>>) { | |
| } | |
| } | |
| bb0: { | |
| StorageLive(_5); | |
| StorageLive(_3); | |
| _3 = copy _1 as *const std::ptr::Unaligned<T> (PtrToPtr); | |
| StorageLive(_4); | |
| _4 = copy (*_3); | |
| _5 = copy _4 as T (Transmute); | |
| StorageDead(_4); | |
| StorageDead(_3); | |
| StorageLive(_6); | |
| _6 = copy _2 as *mut std::ptr::Unaligned<T> (PtrToPtr); | |
| StorageLive(_7); | |
| _7 = std::ptr::Unaligned::<T>(copy _5); | |
| (*_6) = copy _7; | |
| StorageDead(_7); | |
| StorageDead(_6); | |
| StorageDead(_5); | |
| return; | |
| } | |
| } |