add some tests making sure we get the alias checking right
This commit is contained in:
parent
de80bcbdbf
commit
11f0aedc3d
10
tests/compile-fail/validation_aliasing_mut1.rs
Normal file
10
tests/compile-fail/validation_aliasing_mut1.rs
Normal file
@ -0,0 +1,10 @@
|
||||
#![allow(unused_variables)]
|
||||
|
||||
mod safe {
|
||||
pub fn safe(x: &mut i32, y: &mut i32) {} //~ ERROR: in conflict with lock WriteLock
|
||||
}
|
||||
|
||||
fn main() {
|
||||
let x = &mut 0 as *mut _;
|
||||
unsafe { safe::safe(&mut *x, &mut *x) };
|
||||
}
|
10
tests/compile-fail/validation_aliasing_mut2.rs
Normal file
10
tests/compile-fail/validation_aliasing_mut2.rs
Normal file
@ -0,0 +1,10 @@
|
||||
#![allow(unused_variables)]
|
||||
|
||||
mod safe {
|
||||
pub fn safe(x: &i32, y: &mut i32) {} //~ ERROR: in conflict with lock ReadLock
|
||||
}
|
||||
|
||||
fn main() {
|
||||
let x = &mut 0 as *mut _;
|
||||
unsafe { safe::safe(&*x, &mut *x) };
|
||||
}
|
10
tests/compile-fail/validation_aliasing_mut3.rs
Normal file
10
tests/compile-fail/validation_aliasing_mut3.rs
Normal file
@ -0,0 +1,10 @@
|
||||
#![allow(unused_variables)]
|
||||
|
||||
mod safe {
|
||||
pub fn safe(x: &mut i32, y: &i32) {} //~ ERROR: in conflict with lock WriteLock
|
||||
}
|
||||
|
||||
fn main() {
|
||||
let x = &mut 0 as *mut _;
|
||||
unsafe { safe::safe(&mut *x, &*x) };
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user