about summary refs log tree commit diff
diff options
context:
space:
mode:
authorOli Scherer <git-spam-no-reply9815368754983@oli-obk.de>2022-11-22 11:52:26 +0000
committerOli Scherer <git-spam-no-reply9815368754983@oli-obk.de>2022-12-15 16:24:11 +0000
commit98dc76a374807615a3400995e86237d89df95d35 (patch)
tree55ff5c8e7cf54cedadcb0a52b51c6982ffcc1fa6
parentd9d92ed7dadffa26d14274e7c73e3bdb4d56687e (diff)
downloadrust-98dc76a374807615a3400995e86237d89df95d35.tar.gz
rust-98dc76a374807615a3400995e86237d89df95d35.zip
Always report alignment failures in future incompat summaries
-rw-r--r--compiler/rustc_lint_defs/src/builtin.rs1
-rw-r--r--src/test/ui/consts/const-eval/ub-ref-ptr.32bit.stderr18
-rw-r--r--src/test/ui/consts/const-eval/ub-ref-ptr.64bit.stderr18
3 files changed, 37 insertions, 0 deletions
diff --git a/compiler/rustc_lint_defs/src/builtin.rs b/compiler/rustc_lint_defs/src/builtin.rs
index dddc200b2fb..111e6b96154 100644
--- a/compiler/rustc_lint_defs/src/builtin.rs
+++ b/compiler/rustc_lint_defs/src/builtin.rs
@@ -1052,6 +1052,7 @@ declare_lint! {
     "raw pointers must be aligned before dereferencing",
     @future_incompatible = FutureIncompatibleInfo {
         reference: "issue #68585 <https://github.com/rust-lang/rust/issues/104616>",
+        reason: FutureIncompatibilityReason::FutureReleaseErrorReportNow,
     };
 }
 
diff --git a/src/test/ui/consts/const-eval/ub-ref-ptr.32bit.stderr b/src/test/ui/consts/const-eval/ub-ref-ptr.32bit.stderr
index 8cd3918c0b4..6e6cbb34aeb 100644
--- a/src/test/ui/consts/const-eval/ub-ref-ptr.32bit.stderr
+++ b/src/test/ui/consts/const-eval/ub-ref-ptr.32bit.stderr
@@ -168,3 +168,21 @@ LL |     ptr.read();
 error: aborting due to 15 previous errors
 
 For more information about this error, try `rustc --explain E0080`.
+Future incompatibility report: Future breakage diagnostic:
+error: accessing memory with alignment 1, but alignment 4 is required
+  --> $SRC_DIR/core/src/ptr/mod.rs:LL:COL
+   |
+   = note: inside `std::ptr::read::<u32>`
+  --> $SRC_DIR/core/src/ptr/const_ptr.rs:LL:COL
+   |
+   = note: inside `ptr::const_ptr::<impl *const u32>::read`
+   |
+  ::: $DIR/ub-ref-ptr.rs:65:5
+   |
+LL |     ptr.read();
+   |     ---------- inside `UNALIGNED_READ`
+   |
+   = 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 #68585 <https://github.com/rust-lang/rust/issues/104616>
+   = note: `#[deny(invalid_alignment)]` on by default
+
diff --git a/src/test/ui/consts/const-eval/ub-ref-ptr.64bit.stderr b/src/test/ui/consts/const-eval/ub-ref-ptr.64bit.stderr
index 77c52788a9c..3d1f36f0012 100644
--- a/src/test/ui/consts/const-eval/ub-ref-ptr.64bit.stderr
+++ b/src/test/ui/consts/const-eval/ub-ref-ptr.64bit.stderr
@@ -168,3 +168,21 @@ LL |     ptr.read();
 error: aborting due to 15 previous errors
 
 For more information about this error, try `rustc --explain E0080`.
+Future incompatibility report: Future breakage diagnostic:
+error: accessing memory with alignment 1, but alignment 4 is required
+  --> $SRC_DIR/core/src/ptr/mod.rs:LL:COL
+   |
+   = note: inside `std::ptr::read::<u32>`
+  --> $SRC_DIR/core/src/ptr/const_ptr.rs:LL:COL
+   |
+   = note: inside `ptr::const_ptr::<impl *const u32>::read`
+   |
+  ::: $DIR/ub-ref-ptr.rs:65:5
+   |
+LL |     ptr.read();
+   |     ---------- inside `UNALIGNED_READ`
+   |
+   = 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 #68585 <https://github.com/rust-lang/rust/issues/104616>
+   = note: `#[deny(invalid_alignment)]` on by default
+