summaryrefslogtreecommitdiffstats
path: root/src/tools/clippy/tests/ui/zero_offset.rs
blob: c7a69dee4b2deab8c1dad239f75a267f41002cd1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#[allow(clippy::borrow_as_ptr)]
fn main() {
    unsafe {
        let m = &mut () as *mut ();
        m.offset(0);
        //~^ ERROR: offset calculation on zero-sized value
        //~| NOTE: `#[deny(clippy::zst_offset)]` on by default
        m.wrapping_add(0);
        //~^ ERROR: offset calculation on zero-sized value
        m.sub(0);
        //~^ ERROR: offset calculation on zero-sized value
        m.wrapping_sub(0);
        //~^ ERROR: offset calculation on zero-sized value

        let c = &() as *const ();
        c.offset(0);
        //~^ ERROR: offset calculation on zero-sized value
        c.wrapping_add(0);
        //~^ ERROR: offset calculation on zero-sized value
        c.sub(0);
        //~^ ERROR: offset calculation on zero-sized value
        c.wrapping_sub(0);
        //~^ ERROR: offset calculation on zero-sized value

        let sized = &1 as *const i32;
        sized.offset(0);
    }
}