mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-30 02:33:55 +00:00
62 lines
2.7 KiB
Plaintext
62 lines
2.7 KiB
Plaintext
error: reference to packed field is unaligned
|
|
--> $DIR/unaligned_references_external_macro.rs:5:1
|
|
|
|
|
LL | / unaligned_references_external_crate::mac! {
|
|
LL | |
|
|
LL | | #[repr(packed)]
|
|
LL | | pub struct X {
|
|
LL | | pub field: u16
|
|
LL | | }
|
|
LL | | }
|
|
| |_^
|
|
|
|
|
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
|
|
= note: for more information, see issue #82523 <https://github.com/rust-lang/rust/issues/82523>
|
|
= note: fields of packed structs are not properly aligned, and creating a misaligned reference is undefined behavior (even if that reference is never dereferenced)
|
|
= help: copy the field contents to a local variable, or replace the reference with a raw pointer and use `read_unaligned`/`write_unaligned` (loads and stores via `*p` must be properly aligned even when using raw pointers)
|
|
note: the lint level is defined here
|
|
--> $DIR/unaligned_references_external_macro.rs:5:1
|
|
|
|
|
LL | / unaligned_references_external_crate::mac! {
|
|
LL | |
|
|
LL | | #[repr(packed)]
|
|
LL | | pub struct X {
|
|
LL | | pub field: u16
|
|
LL | | }
|
|
LL | | }
|
|
| |_^
|
|
= note: this error originates in the macro `unaligned_references_external_crate::mac` (in Nightly builds, run with -Z macro-backtrace for more info)
|
|
|
|
error: aborting due to previous error
|
|
|
|
Future incompatibility report: Future breakage diagnostic:
|
|
error: reference to packed field is unaligned
|
|
--> $DIR/unaligned_references_external_macro.rs:5:1
|
|
|
|
|
LL | / unaligned_references_external_crate::mac! {
|
|
LL | |
|
|
LL | | #[repr(packed)]
|
|
LL | | pub struct X {
|
|
LL | | pub field: u16
|
|
LL | | }
|
|
LL | | }
|
|
| |_^
|
|
|
|
|
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
|
|
= note: for more information, see issue #82523 <https://github.com/rust-lang/rust/issues/82523>
|
|
= note: fields of packed structs are not properly aligned, and creating a misaligned reference is undefined behavior (even if that reference is never dereferenced)
|
|
= help: copy the field contents to a local variable, or replace the reference with a raw pointer and use `read_unaligned`/`write_unaligned` (loads and stores via `*p` must be properly aligned even when using raw pointers)
|
|
note: the lint level is defined here
|
|
--> $DIR/unaligned_references_external_macro.rs:5:1
|
|
|
|
|
LL | / unaligned_references_external_crate::mac! {
|
|
LL | |
|
|
LL | | #[repr(packed)]
|
|
LL | | pub struct X {
|
|
LL | | pub field: u16
|
|
LL | | }
|
|
LL | | }
|
|
| |_^
|
|
= note: this error originates in the macro `unaligned_references_external_crate::mac` (in Nightly builds, run with -Z macro-backtrace for more info)
|
|
|