diff --git a/tests/compile-fail/stacked_borrows/illegal_write6.rs b/tests/compile-fail/stacked_borrows/illegal_write6.rs new file mode 100644 index 00000000000..86f2c0f350e --- /dev/null +++ b/tests/compile-fail/stacked_borrows/illegal_write6.rs @@ -0,0 +1,12 @@ +fn main() { + let x = &mut 0u32; + let p = x as *mut u32; + foo(x, p); +} + +fn foo(a: &mut u32, y: *mut u32) -> u32 { + *a = 1; + let _b = &*a; + unsafe { *y = 2; } //~ ERROR: borrow stack + return *a; +}