about summary refs log tree commit diff
path: root/src/tools/miri/tests/fail-dep/shims/memcmp_zero.rs
blob: f2ddc200563274646c84de0fea103731266ca80a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
//@ignore-target-windows: No libc on Windows
//@compile-flags: -Zmiri-permissive-provenance

// C says that passing "invalid" pointers is UB for all string functions.
// It is unclear whether `(int*)42` is "invalid", but there is no actually
// a `char` living at that address, so arguably it cannot be a valid pointer.
// Hence this is UB.
fn main() {
    let ptr = 42 as *const u8;
    unsafe {
        libc::memcmp(ptr.cast(), ptr.cast(), 0); //~ERROR: dangling
    }
}