28 lines
472 B
Rust
28 lines
472 B
Rust
// compile-flags: -Z ui-testing=no
|
|
|
|
|
|
#![feature(const_swap)]
|
|
#![feature(const_mut_refs)]
|
|
use std::{
|
|
mem::{self, MaybeUninit},
|
|
ptr,
|
|
};
|
|
|
|
const X: () = {
|
|
let mut ptr1 = &1;
|
|
let mut ptr2 = &2;
|
|
|
|
// Swap them, bytewise.
|
|
unsafe {
|
|
ptr::swap_nonoverlapping(
|
|
&mut ptr1 as *mut _ as *mut MaybeUninit<u8>,
|
|
&mut ptr2 as *mut _ as *mut MaybeUninit<u8>,
|
|
mem::size_of::<&i32>(),
|
|
);
|
|
}
|
|
};
|
|
|
|
fn main() {
|
|
X
|
|
}
|