1 file changed +4
-2
lines changed Original file line number Diff line number Diff line change @@ -103,7 +103,8 @@ macro_rules! iterator {
103
103
// so this new pointer is inside `self` and thus guaranteed to be non-null.
104
104
unsafe {
105
105
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) ,
107
108
_end => self . ptr = self . ptr. add( offset) ,
108
109
) ;
109
110
}
@@ -119,7 +120,8 @@ macro_rules! iterator {
119
120
// SAFETY: By our precondition, `offset` can be at most the
120
121
// current length, so the subtraction can never overflow.
121
122
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) ;
123
125
self . ptr
124
126
} ,
125
127
// SAFETY: the caller guarantees that `offset` doesn't exceed `self.len()`,
0 commit comments