add test checking that overlapping assignments work

This commit is contained in:
Ralf Jung 2023-08-03 14:14:14 +02:00
parent 460e92b6a9
commit 3c39dc2cba

View File

@ -20,6 +20,15 @@ fn basic_raw() {
assert_eq!(*x, 23);
}
fn assign_overlapping() {
// Test an assignment where LHS and RHS alias.
// In Mir, that's UB (see `fail/overlapping_assignment.rs`), but in surface Rust this is allowed.
let mut mem = [0u32; 4];
let ptr = &mut mem as *mut [u32; 4];
unsafe { *ptr = *ptr };
}
fn main() {
basic_raw();
assign_overlapping();
}