Auto merge of #126578 - scottmcm:inlining-bonuses-too, r=davidtwco · model-checking/verify-rust-std@7e940ba

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()`,