summaryrefslogtreecommitdiffstats
path: root/src/test/ui/consts/const-eval/heap/dealloc_intrinsic_dangling.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/consts/const-eval/heap/dealloc_intrinsic_dangling.rs')
-rw-r--r--src/test/ui/consts/const-eval/heap/dealloc_intrinsic_dangling.rs22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/test/ui/consts/const-eval/heap/dealloc_intrinsic_dangling.rs b/src/test/ui/consts/const-eval/heap/dealloc_intrinsic_dangling.rs
new file mode 100644
index 000000000..b6d89a58d
--- /dev/null
+++ b/src/test/ui/consts/const-eval/heap/dealloc_intrinsic_dangling.rs
@@ -0,0 +1,22 @@
+#![feature(core_intrinsics)]
+#![feature(const_heap)]
+#![feature(const_mut_refs)]
+
+use std::intrinsics;
+
+const _X: &'static u8 = unsafe {
+ let ptr = intrinsics::const_allocate(4, 4);
+ intrinsics::const_deallocate(ptr, 4, 4);
+ &*ptr
+ //~^ error: evaluation of constant value failed
+};
+
+const _Y: u8 = unsafe {
+ let ptr = intrinsics::const_allocate(4, 4);
+ let reference = &*ptr;
+ intrinsics::const_deallocate(ptr, 4, 4);
+ *reference
+ //~^ error: evaluation of constant value failed
+};
+
+fn main() {}