diff options
Diffstat (limited to 'tests/mir-opt/pre-codegen/slice_iter.enumerated_loop.PreCodegen.after.panic-unwind.mir')
| -rw-r--r-- | tests/mir-opt/pre-codegen/slice_iter.enumerated_loop.PreCodegen.after.panic-unwind.mir | 141 |
1 files changed, 61 insertions, 80 deletions
diff --git a/tests/mir-opt/pre-codegen/slice_iter.enumerated_loop.PreCodegen.after.panic-unwind.mir b/tests/mir-opt/pre-codegen/slice_iter.enumerated_loop.PreCodegen.after.panic-unwind.mir index 70cdf3f41c2..8491c49f767 100644 --- a/tests/mir-opt/pre-codegen/slice_iter.enumerated_loop.PreCodegen.after.panic-unwind.mir +++ b/tests/mir-opt/pre-codegen/slice_iter.enumerated_loop.PreCodegen.after.panic-unwind.mir @@ -4,147 +4,128 @@ fn enumerated_loop(_1: &[T], _2: impl Fn(usize, &T)) -> () { debug slice => _1; debug f => _2; let mut _0: (); - let mut _13: std::slice::Iter<'_, T>; + let mut _12: std::slice::Iter<'_, T>; + let mut _13: std::iter::Enumerate<std::slice::Iter<'_, T>>; let mut _14: std::iter::Enumerate<std::slice::Iter<'_, T>>; - let mut _15: std::iter::Enumerate<std::slice::Iter<'_, T>>; - let mut _16: &mut std::iter::Enumerate<std::slice::Iter<'_, T>>; - let mut _17: std::option::Option<(usize, &T)>; - let mut _18: isize; - let mut _21: &impl Fn(usize, &T); - let mut _22: (usize, &T); - let _23: (); + let mut _15: &mut std::iter::Enumerate<std::slice::Iter<'_, T>>; + let mut _16: std::option::Option<(usize, &T)>; + let mut _17: isize; + let mut _20: &impl Fn(usize, &T); + let mut _21: (usize, &T); + let _22: (); scope 1 { - debug iter => _15; - let _19: usize; - let _20: &T; + debug iter => _14; + let _18: usize; + let _19: &T; scope 2 { - debug i => _19; - debug x => _20; + debug i => _18; + debug x => _19; } } scope 3 (inlined core::slice::<impl [T]>::iter) { - debug self => _1; scope 4 (inlined std::slice::Iter::<'_, T>::new) { - debug slice => _1; let _3: usize; - let mut _5: std::ptr::NonNull<[T]>; - let mut _8: bool; + let mut _7: bool; + let mut _8: *mut T; let mut _9: *mut T; - let mut _10: *mut T; - let mut _12: *const T; + let mut _11: *const T; scope 5 { - debug len => _3; - let _7: std::ptr::NonNull<T>; + let _6: std::ptr::NonNull<T>; scope 6 { - debug ptr => _7; - let _11: *const T; + let _10: *const T; scope 7 { - debug end_or_len => _11; } scope 11 (inlined without_provenance::<T>) { - debug addr => _3; } scope 12 (inlined NonNull::<T>::as_ptr) { - debug self => _7; } scope 13 (inlined std::ptr::mut_ptr::<impl *mut T>::add) { - debug self => _9; - debug count => _3; } } scope 8 (inlined <NonNull<[T]> as From<&[T]>>::from) { - debug reference => _1; let mut _4: *const [T]; } scope 9 (inlined NonNull::<[T]>::cast::<T>) { - debug self => _5; - let mut _6: *const T; + let mut _5: *const T; scope 10 (inlined NonNull::<[T]>::as_ptr) { - debug self => _5; } } } } } scope 14 (inlined <std::slice::Iter<'_, T> as Iterator>::enumerate) { - debug self => _13; scope 15 (inlined Enumerate::<std::slice::Iter<'_, T>>::new) { - debug iter => _13; } } scope 16 (inlined <Enumerate<std::slice::Iter<'_, T>> as IntoIterator>::into_iter) { - debug self => _14; } bb0: { - StorageLive(_13); + StorageLive(_12); StorageLive(_3); - StorageLive(_7); - StorageLive(_4); StorageLive(_6); - _3 = Len((*_1)); + StorageLive(_4); StorageLive(_5); + _3 = Len((*_1)); _4 = &raw const (*_1); - _5 = NonNull::<[T]> { pointer: _4 }; - _6 = _4 as *const T (PtrToPtr); - _7 = NonNull::<T> { pointer: _6 }; - StorageDead(_5); - StorageLive(_11); - StorageLive(_8); - _8 = const <T as std::mem::SizedTypeProperties>::IS_ZST; - switchInt(move _8) -> [0: bb1, otherwise: bb2]; + _5 = _4 as *const T (PtrToPtr); + _6 = NonNull::<T> { pointer: _5 }; + StorageLive(_10); + StorageLive(_7); + _7 = const <T as std::mem::SizedTypeProperties>::IS_ZST; + switchInt(move _7) -> [0: bb1, otherwise: bb2]; } bb1: { - StorageLive(_10); StorageLive(_9); - _9 = _4 as *mut T (PtrToPtr); - _10 = Offset(_9, _3); + StorageLive(_8); + _8 = _4 as *mut T (PtrToPtr); + _9 = Offset(_8, _3); + StorageDead(_8); + _10 = move _9 as *const T (PointerCoercion(MutToConstPointer)); StorageDead(_9); - _11 = move _10 as *const T (PointerCoercion(MutToConstPointer)); - StorageDead(_10); goto -> bb3; } bb2: { - _11 = _3 as *const T (Transmute); + _10 = _3 as *const T (Transmute); goto -> bb3; } bb3: { - StorageDead(_8); - StorageLive(_12); - _12 = _11; - _13 = std::slice::Iter::<'_, T> { ptr: _7, end_or_len: move _12, _marker: const ZeroSized: PhantomData<&T> }; - StorageDead(_12); + StorageDead(_7); + StorageLive(_11); + _11 = _10; + _12 = std::slice::Iter::<'_, T> { ptr: _6, end_or_len: move _11, _marker: const ZeroSized: PhantomData<&T> }; StorageDead(_11); - StorageDead(_6); + StorageDead(_10); + StorageDead(_5); StorageDead(_4); - StorageDead(_7); + StorageDead(_6); StorageDead(_3); - _14 = Enumerate::<std::slice::Iter<'_, T>> { iter: _13, count: const 0_usize }; - StorageDead(_13); - StorageLive(_15); - _15 = _14; + _13 = Enumerate::<std::slice::Iter<'_, T>> { iter: _12, count: const 0_usize }; + StorageDead(_12); + StorageLive(_14); + _14 = _13; goto -> bb4; } bb4: { - StorageLive(_17); StorageLive(_16); - _16 = &mut _15; - _17 = <Enumerate<std::slice::Iter<'_, T>> as Iterator>::next(move _16) -> [return: bb5, unwind: bb11]; + StorageLive(_15); + _15 = &mut _14; + _16 = <Enumerate<std::slice::Iter<'_, T>> as Iterator>::next(move _15) -> [return: bb5, unwind: bb11]; } bb5: { - StorageDead(_16); - _18 = discriminant(_17); - switchInt(move _18) -> [0: bb6, 1: bb8, otherwise: bb10]; + StorageDead(_15); + _17 = discriminant(_16); + switchInt(move _17) -> [0: bb6, 1: bb8, otherwise: bb10]; } bb6: { - StorageDead(_17); - StorageDead(_15); + StorageDead(_16); + StorageDead(_14); drop(_2) -> [return: bb7, unwind continue]; } @@ -153,19 +134,19 @@ fn enumerated_loop(_1: &[T], _2: impl Fn(usize, &T)) -> () { } bb8: { - _19 = (((_17 as Some).0: (usize, &T)).0: usize); - _20 = (((_17 as Some).0: (usize, &T)).1: &T); + _18 = (((_16 as Some).0: (usize, &T)).0: usize); + _19 = (((_16 as Some).0: (usize, &T)).1: &T); + StorageLive(_20); + _20 = &_2; StorageLive(_21); - _21 = &_2; - StorageLive(_22); - _22 = (_19, _20); - _23 = <impl Fn(usize, &T) as Fn<(usize, &T)>>::call(move _21, move _22) -> [return: bb9, unwind: bb11]; + _21 = (_18, _19); + _22 = <impl Fn(usize, &T) as Fn<(usize, &T)>>::call(move _20, move _21) -> [return: bb9, unwind: bb11]; } bb9: { - StorageDead(_22); StorageDead(_21); - StorageDead(_17); + StorageDead(_20); + StorageDead(_16); goto -> bb4; } |
