try to clarify wording

This commit is contained in:
Ralf Jung
2023-08-21 13:54:03 +02:00
parent b9c15c5d3b
commit 0188b9cbb4
2 changed files with 9 additions and 9 deletions

View File

@@ -2705,12 +2705,13 @@ pub const unsafe fn copy_nonoverlapping<T>(src: *const T, dst: *mut T, count: us
/// ///
/// Behavior is undefined if any of the following conditions are violated: /// Behavior is undefined if any of the following conditions are violated:
/// ///
/// * `src` must be [valid] for reads of `count * size_of::<T>()` bytes. /// * `src` must be [valid] for reads of `count * size_of::<T>()` bytes, and must remain valid even
/// if `dst` is written for `count * size_of::<T>()` bytes. (This means if the memory ranges
/// overlap, the two pointers must not be subject to aliasing restrictions relative to each
/// other.)
/// ///
/// * `dst` must be [valid] for writes of `count * size_of::<T>()` bytes. /// * `dst` must be [valid] for writes of `count * size_of::<T>()` bytes, and must remain valid even
/// /// if `src` is read for `count * size_of::<T>()` bytes.
/// * `src` must remain valid for reads even after `dst` is written, and vice versa.
/// (In other words, there cannot be aliasing restrictions on the use of these pointers.)
/// ///
/// * Both `src` and `dst` must be properly aligned. /// * Both `src` and `dst` must be properly aligned.
/// ///

View File

@@ -795,10 +795,9 @@ pub const fn slice_from_raw_parts_mut<T>(data: *mut T, len: usize) -> *mut [T] {
/// ///
/// Behavior is undefined if any of the following conditions are violated: /// Behavior is undefined if any of the following conditions are violated:
/// ///
/// * Both `x` and `y` must be [valid] for both reads and writes. /// * Both `x` and `y` must be [valid] for both reads and writes. They must remain valid even if the
/// /// other pointer is written. (This means if the memory ranges overlap, the two pointers must not
/// * `x` must remain valid for reads and writes even after `y` is read/written, and vice versa. /// be subject to aliasing restrictions relative to each other.)
/// (In other words, there cannot be aliasing restrictions on the use of these pointers.)
/// ///
/// * Both `x` and `y` must be properly aligned. /// * Both `x` and `y` must be properly aligned.
/// ///