about summary refs log tree commit diff
path: root/tests/ui/consts/const-eval/partial_ptr_overwrite.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ui/consts/const-eval/partial_ptr_overwrite.rs')
-rw-r--r--tests/ui/consts/const-eval/partial_ptr_overwrite.rs14
1 files changed, 14 insertions, 0 deletions
diff --git a/tests/ui/consts/const-eval/partial_ptr_overwrite.rs b/tests/ui/consts/const-eval/partial_ptr_overwrite.rs
new file mode 100644
index 00000000000..d6c76886853
--- /dev/null
+++ b/tests/ui/consts/const-eval/partial_ptr_overwrite.rs
@@ -0,0 +1,14 @@
+// Test for the behavior described in <https://github.com/rust-lang/rust/issues/87184>.
+#![feature(const_mut_refs)]
+
+const PARTIAL_OVERWRITE: () = {
+    let mut p = &42;
+    unsafe {
+        let ptr: *mut _ = &mut p;
+        *(ptr as *mut u8) = 123; //~ ERROR constant
+        //~| unable to overwrite parts of a pointer
+    }
+    let x = *p;
+};
+
+fn main() {}