From 8d3b3063f6a91eb4d421998aea3c7dbcefa34f11 Mon Sep 17 00:00:00 2001 From: Ralf Jung Date: Thu, 27 Feb 2020 09:45:32 +0100 Subject: [PATCH] avoid a negation in is_nonoverlapping --- src/libcore/intrinsics.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/libcore/intrinsics.rs b/src/libcore/intrinsics.rs index 9a23b54dfa0..ecee33c2e6f 100644 --- a/src/libcore/intrinsics.rs +++ b/src/libcore/intrinsics.rs @@ -1429,8 +1429,9 @@ pub(crate) fn is_nonoverlapping(src: *const T, dst: *const T, count: usize) - let dst_usize = dst as usize; let size = mem::size_of::().checked_mul(count).unwrap(); let diff = if src_usize > dst_usize { src_usize - dst_usize } else { dst_usize - src_usize }; - let overlaps = size > diff; - !overlaps + // If the absolute distance between the ptrs is at least as big as the size of the buffer, + // they do not overlap. + diff >= size } /// Copies `count * size_of::()` bytes from `src` to `dst`. The source -- 2.44.0