From 2fccae8aaceaae28b94c86bd7f55a1ebf46877ab Mon Sep 17 00:00:00 2001 From: Ralf Jung Date: Thu, 10 Aug 2017 13:56:12 -0700 Subject: [PATCH] add another compile-fail test for validation --- .../validation_buggy_as_mut_slice.rs | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 tests/compile-fail/validation_buggy_as_mut_slice.rs diff --git a/tests/compile-fail/validation_buggy_as_mut_slice.rs b/tests/compile-fail/validation_buggy_as_mut_slice.rs new file mode 100644 index 000000000000..98eca8d3607f --- /dev/null +++ b/tests/compile-fail/validation_buggy_as_mut_slice.rs @@ -0,0 +1,20 @@ +#![allow(unused_variables)] + +// For some reason, the error location is different when using fullmir +// error-pattern: in conflict with lock WriteLock + +mod safe { + use std::slice::from_raw_parts_mut; + + pub fn as_mut_slice(self_: &Vec) -> &mut [T] { + unsafe { + from_raw_parts_mut(self_.as_ptr() as *mut T, self_.len()) + } + } +} + +fn main() { + let v = vec![0,1,2]; + let v1_ = safe::as_mut_slice(&v); + let v2_ = safe::as_mut_slice(&v); +}