From 7d9dc6e698b5bddc5e63f11fc6d6f60bb1cd4359 Mon Sep 17 00:00:00 2001 From: Ralf Jung Date: Thu, 18 Apr 2019 13:20:01 +0200 Subject: [PATCH] test that creating a 2nd mutable ref from a NonNull invalidates the first --- .../stacked_borrows/mut_exclusive_violation2.rs | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 tests/compile-fail/stacked_borrows/mut_exclusive_violation2.rs diff --git a/tests/compile-fail/stacked_borrows/mut_exclusive_violation2.rs b/tests/compile-fail/stacked_borrows/mut_exclusive_violation2.rs new file mode 100644 index 000000000000..c6802c5ec94e --- /dev/null +++ b/tests/compile-fail/stacked_borrows/mut_exclusive_violation2.rs @@ -0,0 +1,10 @@ +use std::ptr::NonNull; + +fn main() { unsafe { + let x = &mut 0; + let mut ptr1 = NonNull::from(x); + let mut ptr2 = ptr1.clone(); + let raw1 = ptr1.as_mut(); + let _raw2 = ptr2.as_mut(); + let _val = *raw1; //~ ERROR borrow stack +} }