about summary refs log tree commit diff
path: root/tests/ui/sanitizer/address.rs
blob: 1688f46c2d556735441adad1a489380e8b56f9e0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
//@ needs-sanitizer-support
//@ needs-sanitizer-address
//@ ignore-cross-compile
//
//@ compile-flags: -Z sanitizer=address -O -g -C unsafe-allow-abi-mismatch=sanitizer
//
//@ run-fail-or-crash
//@ error-pattern: AddressSanitizer: stack-buffer-overflow
//@ error-pattern: 'xs' (line 14) <== Memory access at offset

use std::hint::black_box;

fn main() {
    let xs = [0, 1, 2, 3];
    // Avoid optimizing everything out.
    let xs = black_box(xs.as_ptr());
    let code = unsafe { *xs.offset(4) };
    std::process::exit(code);
}