Merge pull request #1430 from joshlf/patch-2

type-layout.md: Warn about repr(align)/repr(packed) and field order
This commit is contained in:
Eric Huss 2023-11-22 15:28:27 +00:00 committed by GitHub
commit 01a12f22be
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 4 additions and 0 deletions

View File

@ -524,6 +524,10 @@ assert_eq!(std::mem::size_of::<Enum16>(), 4);
The `align` and `packed` modifiers can be used to respectively raise or lower
the alignment of `struct`s and `union`s. `packed` may also alter the padding
between fields (although it will not alter the padding inside of any field).
On their own, `align` and `packed` do not provide guarantees about the order
of fields in the layout of a struct or the layout of an enum variant, although
they may be combined with representations (such as `C`) which do provide such
guarantees.
The alignment is specified as an integer parameter in the form of
`#[repr(align(x))]` or `#[repr(packed(x))]`. The alignment value must be a