| // 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; |
| } |
| } |