aboutsummaryrefslogtreecommitdiff
path: root/tests/ui/pin_project/unaligned_references.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ui/pin_project/unaligned_references.rs')
-rw-r--r--tests/ui/pin_project/unaligned_references.rs23
1 files changed, 23 insertions, 0 deletions
diff --git a/tests/ui/pin_project/unaligned_references.rs b/tests/ui/pin_project/unaligned_references.rs
new file mode 100644
index 0000000..23dd71d
--- /dev/null
+++ b/tests/ui/pin_project/unaligned_references.rs
@@ -0,0 +1,23 @@
+#![forbid(unaligned_references)]
+
+// Refs: https://github.com/rust-lang/rust/issues/82523
+
+#[repr(packed)]
+struct Packed {
+ f: u32,
+}
+
+#[repr(packed(2))]
+struct PackedN {
+ f: u32,
+}
+
+fn main() {
+ let a = Packed { f: 1 };
+ &a.f; //~ ERROR reference to packed field is unaligned
+ let _ = &a.f; //~ ERROR reference to packed field is unaligned
+
+ let b = PackedN { f: 1 };
+ &b.f; //~ ERROR reference to packed field is unaligned
+ let _ = &b.f; //~ ERROR reference to packed field is unaligned
+}