//! Regression test for https://github.com/rust-lang/rust/issues/2470

//@ run-fail
//@ error-pattern:index out of bounds
//@ needs-subprocess

use std::mem;

fn main() {

    // This should cause a bounds-check panic, but may not if we do our
    // bounds checking by comparing the scaled index to the vector's
    // address-bounds, since we've scaled the index to wrap around to the
    // address of the 0th cell in the array (even though the index is
    // huge).

    let x = vec![1_usize, 2_usize, 3_usize];

    let base = x.as_ptr() as usize;
    let idx = base / mem::size_of::<usize>();
    println!("ov1 base = 0x{:x}", base);
    println!("ov1 idx = 0x{:x}", idx);
    println!("ov1 sizeof::<usize>() = 0x{:x}", mem::size_of::<usize>());
    println!("ov1 idx * sizeof::<usize>() = 0x{:x}",
             idx * mem::size_of::<usize>());

    // This should panic.
    println!("ov1 0x{:x}", x[idx]);
}
