1// run-rustfix 2 3fn main() { 4 unsafe { 5 let _slice: &[usize] = std::slice::from_raw_parts(core::ptr::NonNull::dangling().as_ptr(), 0); 6 let _slice: &[usize] = std::slice::from_raw_parts(core::ptr::NonNull::dangling().as_ptr(), 0); 7 8 let _slice: &[usize] = std::slice::from_raw_parts_mut(core::ptr::NonNull::dangling().as_ptr(), 0); 9 10 std::ptr::copy::<usize>(core::ptr::NonNull::dangling().as_ptr(), std::ptr::NonNull::dangling().as_ptr(), 0); 11 std::ptr::copy::<usize>(std::ptr::NonNull::dangling().as_ptr(), core::ptr::NonNull::dangling().as_ptr(), 0); 12 13 std::ptr::copy_nonoverlapping::<usize>(core::ptr::NonNull::dangling().as_ptr(), std::ptr::NonNull::dangling().as_ptr(), 0); 14 std::ptr::copy_nonoverlapping::<usize>(std::ptr::NonNull::dangling().as_ptr(), core::ptr::NonNull::dangling().as_ptr(), 0); 15 16 struct A; // zero sized struct 17 assert_eq!(std::mem::size_of::<A>(), 0); 18 19 let _a: A = std::ptr::read(core::ptr::NonNull::dangling().as_ptr()); 20 let _a: A = std::ptr::read(core::ptr::NonNull::dangling().as_ptr()); 21 22 let _a: A = std::ptr::read_unaligned(core::ptr::NonNull::dangling().as_ptr()); 23 let _a: A = std::ptr::read_unaligned(core::ptr::NonNull::dangling().as_ptr()); 24 25 let _a: A = std::ptr::read_volatile(core::ptr::NonNull::dangling().as_ptr()); 26 let _a: A = std::ptr::read_volatile(core::ptr::NonNull::dangling().as_ptr()); 27 28 let _a: A = std::ptr::replace(core::ptr::NonNull::dangling().as_ptr(), A); 29 30 let _slice: *const [usize] = std::ptr::slice_from_raw_parts(core::ptr::NonNull::dangling().as_ptr(), 0); 31 let _slice: *const [usize] = std::ptr::slice_from_raw_parts(core::ptr::NonNull::dangling().as_ptr(), 0); 32 33 let _slice: *const [usize] = std::ptr::slice_from_raw_parts_mut(core::ptr::NonNull::dangling().as_ptr(), 0); 34 35 std::ptr::swap::<A>(core::ptr::NonNull::dangling().as_ptr(), &mut A); 36 std::ptr::swap::<A>(&mut A, core::ptr::NonNull::dangling().as_ptr()); 37 38 std::ptr::swap_nonoverlapping::<A>(core::ptr::NonNull::dangling().as_ptr(), &mut A, 0); 39 std::ptr::swap_nonoverlapping::<A>(&mut A, core::ptr::NonNull::dangling().as_ptr(), 0); 40 41 std::ptr::write(core::ptr::NonNull::dangling().as_ptr(), A); 42 43 std::ptr::write_unaligned(core::ptr::NonNull::dangling().as_ptr(), A); 44 45 std::ptr::write_volatile(core::ptr::NonNull::dangling().as_ptr(), A); 46 47 std::ptr::write_bytes::<usize>(core::ptr::NonNull::dangling().as_ptr(), 42, 0); 48 } 49} 50