diff --git a/src/librustc_mir/transform/check_packed_ref.rs b/src/librustc_mir/transform/check_packed_ref.rs index 9e07a4599f686..faad1a72327f4 100644 --- a/src/librustc_mir/transform/check_packed_ref.rs +++ b/src/librustc_mir/transform/check_packed_ref.rs @@ -1,7 +1,7 @@ use rustc_middle::mir::visit::{PlaceContext, Visitor}; use rustc_middle::mir::*; use rustc_middle::ty::{self, TyCtxt}; -use rustc_session::lint::builtin::PACKED_REFERENCES; +use rustc_session::lint::builtin::UNALIGNED_REFERENCES; use crate::transform::{MirPass, MirSource}; use crate::util; @@ -47,13 +47,13 @@ impl<'a, 'tcx> Visitor<'tcx> for PackedRefChecker<'a, 'tcx> { .assert_crate_local() .lint_root; self.tcx.struct_span_lint_hir( - PACKED_REFERENCES, + UNALIGNED_REFERENCES, lint_root, source_info.span, |lint| { - lint.build(&format!("reference to packed field is not allowed",)) + lint.build(&format!("reference to packed field is unaligned",)) .note( - "fields of packed structs might be misaligned, and creating \ + "fields of packed structs are not properly aligned, and creating \ a misaligned reference is undefined behavior (even if that \ reference is never dereferenced)", ) diff --git a/src/librustc_session/lint/builtin.rs b/src/librustc_session/lint/builtin.rs index 0753e9e4b7325..4035417204867 100644 --- a/src/librustc_session/lint/builtin.rs +++ b/src/librustc_session/lint/builtin.rs @@ -217,7 +217,7 @@ declare_lint! { } declare_lint! { - pub PACKED_REFERENCES, + pub UNALIGNED_REFERENCES, Allow, "detects unaligned references to fields of packed structs", } @@ -551,7 +551,7 @@ declare_lint_pass! { INVALID_TYPE_PARAM_DEFAULT, CONST_ERR, RENAMED_AND_REMOVED_LINTS, - PACKED_REFERENCES, + UNALIGNED_REFERENCES, SAFE_PACKED_BORROWS, PATTERNS_IN_FNS_WITHOUT_BODY, MISSING_FRAGMENT_SPECIFIER, diff --git a/src/test/ui/lint/packed_reference.stderr b/src/test/ui/lint/packed_reference.stderr deleted file mode 100644 index 51158a84175dc..0000000000000 --- a/src/test/ui/lint/packed_reference.stderr +++ /dev/null @@ -1,39 +0,0 @@ -error: reference to packed field is not allowed - --> $DIR/packed_reference.rs:14:17 - | -LL | let _ = &good.data; - | ^^^^^^^^^^ - | -note: the lint level is defined here - --> $DIR/packed_reference.rs:1:9 - | -LL | #![deny(packed_references)] - | ^^^^^^^^^^^^^^^^^ - = note: fields of packed structs might be misaligned, and creating a misaligned reference is undefined behavior (even if that reference is never dereferenced) - -error: reference to packed field is not allowed - --> $DIR/packed_reference.rs:15:17 - | -LL | let _ = &good.data as *const _; - | ^^^^^^^^^^ - | - = note: fields of packed structs might be misaligned, and creating a misaligned reference is undefined behavior (even if that reference is never dereferenced) - -error: reference to packed field is not allowed - --> $DIR/packed_reference.rs:16:27 - | -LL | let _: *const _ = &good.data; - | ^^^^^^^^^^ - | - = note: fields of packed structs might be misaligned, and creating a misaligned reference is undefined behavior (even if that reference is never dereferenced) - -error: reference to packed field is not allowed - --> $DIR/packed_reference.rs:17:17 - | -LL | let _ = &good.data2[0]; - | ^^^^^^^^^^^^^^ - | - = note: fields of packed structs might be misaligned, and creating a misaligned reference is undefined behavior (even if that reference is never dereferenced) - -error: aborting due to 4 previous errors - diff --git a/src/test/ui/lint/packed_reference.rs b/src/test/ui/lint/unaligned_references.rs similarity index 95% rename from src/test/ui/lint/packed_reference.rs rename to src/test/ui/lint/unaligned_references.rs index 349421084682b..1d9f4c3db2eb5 100644 --- a/src/test/ui/lint/packed_reference.rs +++ b/src/test/ui/lint/unaligned_references.rs @@ -1,4 +1,4 @@ -#![deny(packed_references)] +#![deny(unaligned_references)] #[repr(packed)] pub struct Good { diff --git a/src/test/ui/lint/unaligned_references.stderr b/src/test/ui/lint/unaligned_references.stderr new file mode 100644 index 0000000000000..0c594cdb30a3c --- /dev/null +++ b/src/test/ui/lint/unaligned_references.stderr @@ -0,0 +1,39 @@ +error: reference to packed field is unaligned + --> $DIR/unaligned_references.rs:14:17 + | +LL | let _ = &good.data; + | ^^^^^^^^^^ + | +note: the lint level is defined here + --> $DIR/unaligned_references.rs:1:9 + | +LL | #![deny(unaligned_references)] + | ^^^^^^^^^^^^^^^^^^^^ + = note: fields of packed structs are not properly aligned, and creating a misaligned reference is undefined behavior (even if that reference is never dereferenced) + +error: reference to packed field is unaligned + --> $DIR/unaligned_references.rs:15:17 + | +LL | let _ = &good.data as *const _; + | ^^^^^^^^^^ + | + = note: fields of packed structs are not properly aligned, and creating a misaligned reference is undefined behavior (even if that reference is never dereferenced) + +error: reference to packed field is unaligned + --> $DIR/unaligned_references.rs:16:27 + | +LL | let _: *const _ = &good.data; + | ^^^^^^^^^^ + | + = note: fields of packed structs are not properly aligned, and creating a misaligned reference is undefined behavior (even if that reference is never dereferenced) + +error: reference to packed field is unaligned + --> $DIR/unaligned_references.rs:17:17 + | +LL | let _ = &good.data2[0]; + | ^^^^^^^^^^^^^^ + | + = note: fields of packed structs are not properly aligned, and creating a misaligned reference is undefined behavior (even if that reference is never dereferenced) + +error: aborting due to 4 previous errors +