mirror of
https://github.com/rust-lang/rust.git
synced 2025-06-06 20:28:33 +00:00
avoid mixing accesses of ptrs derived from a mutable ref and parent ptrs
This commit is contained in:
parent
2b3f260e74
commit
c3a2e7a809
@ -25,7 +25,7 @@ fn test() {
|
|||||||
snd: isize,
|
snd: isize,
|
||||||
}
|
}
|
||||||
let mut p = Pair { fst: 10, snd: 20 };
|
let mut p = Pair { fst: 10, snd: 20 };
|
||||||
let pptr: *mut Pair = &mut p;
|
let pptr: *mut Pair = addr_of_mut!(p);
|
||||||
let iptr: *mut isize = pptr as *mut isize;
|
let iptr: *mut isize = pptr as *mut isize;
|
||||||
assert_eq!(*iptr, 10);
|
assert_eq!(*iptr, 10);
|
||||||
*iptr = 30;
|
*iptr = 30;
|
||||||
@ -1070,8 +1070,8 @@ fn swap_copy_untyped() {
|
|||||||
let mut x = 5u8;
|
let mut x = 5u8;
|
||||||
let mut y = 6u8;
|
let mut y = 6u8;
|
||||||
|
|
||||||
let ptr1 = &mut x as *mut u8 as *mut bool;
|
let ptr1 = addr_of_mut!(x).cast::<bool>();
|
||||||
let ptr2 = &mut y as *mut u8 as *mut bool;
|
let ptr2 = addr_of_mut!(y).cast::<bool>();
|
||||||
|
|
||||||
unsafe {
|
unsafe {
|
||||||
ptr::swap(ptr1, ptr2);
|
ptr::swap(ptr1, ptr2);
|
||||||
|
Loading…
Reference in New Issue
Block a user