Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 847726d

Browse files
committedJun 20, 2024
Shrink some slice iterator MIR
1 parent dd7c901 commit 847726d

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed
 

‎core/src/slice/iter/macros.rs

+4-2
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,8 @@ macro_rules! iterator {
103103
// so this new pointer is inside `self` and thus guaranteed to be non-null.
104104
unsafe {
105105
if_zst!(mut self,
106-
len => *len = len.unchecked_sub(offset),
106+
// Using the intrinsic directly avoids emitting a UbCheck
107+
len => *len = crate::intrinsics::unchecked_sub(*len, offset),
107108
_end => self.ptr = self.ptr.add(offset),
108109
);
109110
}
@@ -119,7 +120,8 @@ macro_rules! iterator {
119120
// SAFETY: By our precondition, `offset` can be at most the
120121
// current length, so the subtraction can never overflow.
121122
len => unsafe {
122-
*len = len.unchecked_sub(offset);
123+
// Using the intrinsic directly avoids emitting a UbCheck
124+
*len = crate::intrinsics::unchecked_sub(*len, offset);
123125
self.ptr
124126
},
125127
// SAFETY: the caller guarantees that `offset` doesn't exceed `self.len()`,

0 commit comments

Comments
 (0)
Failed to load comments.