about summary refs log tree commit diff
path: root/tests/ui/error-codes/E0396.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ui/error-codes/E0396.rs')
-rw-r--r--tests/ui/error-codes/E0396.rs18
1 files changed, 18 insertions, 0 deletions
diff --git a/tests/ui/error-codes/E0396.rs b/tests/ui/error-codes/E0396.rs
new file mode 100644
index 00000000000..4415b70e75e
--- /dev/null
+++ b/tests/ui/error-codes/E0396.rs
@@ -0,0 +1,18 @@
+const REG_ADDR: *mut u8 = 0x5f3759df as *mut u8;
+
+const VALUE: u8 = unsafe { *REG_ADDR };
+//~^ ERROR dereferencing raw mutable pointers in constants is unstable
+
+const unsafe fn unreachable() -> ! {
+    use std::convert::Infallible;
+
+    const INFALLIBLE: *mut Infallible = &[] as *const [Infallible] as *const _ as _;
+    match *INFALLIBLE {}
+    //~^ ERROR dereferencing raw mutable pointers in constant functions is unstable
+
+    const BAD: () = unsafe { match *INFALLIBLE {} };
+    //~^ ERROR dereferencing raw mutable pointers in constants is unstable
+}
+
+fn main() {
+}