| - // MIR for `generic_cast_metadata` before GVN |
| + // MIR for `generic_cast_metadata` after GVN |
| |
| fn generic_cast_metadata(_1: *const [T], _2: *const A, _3: *const B) -> () { |
| let mut _0: (); |
| let mut _4: *const T; |
| let mut _5: (); |
| let mut _6: *const (&A, [T]); |
| let mut _7: usize; |
| let mut _8: *const (T, B); |
| let mut _9: <B as std::ptr::Pointee>::Metadata; |
| let mut _10: *const (T, A); |
| let mut _11: <A as std::ptr::Pointee>::Metadata; |
| let mut _12: *mut A; |
| let mut _13: <A as std::ptr::Pointee>::Metadata; |
| let mut _14: *mut B; |
| let mut _15: <B as std::ptr::Pointee>::Metadata; |
| |
| bb0: { |
| _4 = copy _1 as *const T (PtrToPtr); |
| _5 = PtrMetadata(copy _4); |
| _6 = copy _1 as *const (&A, [T]) (PtrToPtr); |
| - _7 = PtrMetadata(copy _6); |
| + _7 = PtrMetadata(copy _1); |
| _8 = copy _2 as *const (T, B) (PtrToPtr); |
| _9 = PtrMetadata(copy _8); |
| _10 = copy _2 as *const (T, A) (PtrToPtr); |
| - _11 = PtrMetadata(copy _10); |
| + _11 = PtrMetadata(copy _2); |
| _12 = copy _3 as *mut A (PtrToPtr); |
| _13 = PtrMetadata(copy _12); |
| _14 = copy _3 as *mut B (PtrToPtr); |
| - _15 = PtrMetadata(copy _14); |
| + _15 = PtrMetadata(copy _3); |
| return; |
| } |
| } |
| |