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