Skip to content

Commit c0df1d4

Browse files
Rollup merge of rust-lang#42252 - stjepang:clarify-alignof-docs, r=nikomatsakis
Clarify the docs for align_of and its variants It's okay to have unaligned raw pointers and then use `ptr::write_unaligned` and `ptr::read_unaligned`. However, using unaligned `&T` and `&mut T` would be undefined behavior. The current documentation seems to indicate that everything has to be aligned, but in reality only references do. This PR changes the text of docs accordingly. r? @sfackler
2 parents b851d1c + c25e271 commit c0df1d4

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

Diff for: src/libcore/mem.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -220,7 +220,7 @@ pub fn size_of_val<T: ?Sized>(val: &T) -> usize {
220220

221221
/// Returns the [ABI]-required minimum alignment of a type.
222222
///
223-
/// Every valid address of a value of the type `T` must be a multiple of this number.
223+
/// Every reference to a value of the type `T` must be a multiple of this number.
224224
///
225225
/// This is the alignment used for struct fields. It may be smaller than the preferred alignment.
226226
///
@@ -243,7 +243,7 @@ pub fn min_align_of<T>() -> usize {
243243

244244
/// Returns the [ABI]-required minimum alignment of the type of the value that `val` points to.
245245
///
246-
/// Every valid address of a value of the type `T` must be a multiple of this number.
246+
/// Every reference to a value of the type `T` must be a multiple of this number.
247247
///
248248
/// [ABI]: https://en.wikipedia.org/wiki/Application_binary_interface
249249
///
@@ -264,7 +264,7 @@ pub fn min_align_of_val<T: ?Sized>(val: &T) -> usize {
264264

265265
/// Returns the [ABI]-required minimum alignment of a type.
266266
///
267-
/// Every valid address of a value of the type `T` must be a multiple of this number.
267+
/// Every reference to a value of the type `T` must be a multiple of this number.
268268
///
269269
/// This is the alignment used for struct fields. It may be smaller than the preferred alignment.
270270
///
@@ -285,7 +285,7 @@ pub fn align_of<T>() -> usize {
285285

286286
/// Returns the [ABI]-required minimum alignment of the type of the value that `val` points to.
287287
///
288-
/// Every valid address of a value of the type `T` must be a multiple of this number.
288+
/// Every reference to a value of the type `T` must be a multiple of this number.
289289
///
290290
/// [ABI]: https://en.wikipedia.org/wiki/Application_binary_interface
291291
///

0 commit comments

Comments
 (0)