mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-27 09:14:20 +00:00
cf6d6050f7
* The WASI targets deal with the `main` symbol a bit differently than native so some `codegen` and `assembly` tests have been ignored. * All `ignore-emscripten` directives have been updated to `ignore-wasm32` to be more clear that all wasm targets are ignored and it's not just Emscripten. * Most `ignore-wasm32-bare` directives are now gone. * Some ignore directives for wasm were switched to `needs-unwind` instead. * Many `ignore-wasm32*` directives are removed as the tests work with WASI as opposed to `wasm32-unknown-unknown`.
30 lines
775 B
Rust
30 lines
775 B
Rust
// Ensure we appropriately error instead of overflowing a calculation when creating a new Alloc
|
|
// Layout
|
|
|
|
//@ run-fail
|
|
//@ compile-flags: -C opt-level=3
|
|
//@ error-pattern: index out of bounds: the len is 0 but the index is 16777216
|
|
|
|
fn do_test(x: usize) {
|
|
let arr = vec![vec![0u8; 3]];
|
|
|
|
let mut z = Vec::new();
|
|
for arr_ref in arr {
|
|
for y in 0..x {
|
|
for _ in 0..1 {
|
|
z.extend(std::iter::repeat(0).take(x));
|
|
let a = y * x;
|
|
let b = (y + 1) * x - 1;
|
|
let slice = &arr_ref[a..b];
|
|
eprintln!("{} {} {} {}", a, b, arr_ref.len(), slice.len());
|
|
eprintln!("{:?}", slice[1 << 24]);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
fn main() {
|
|
do_test(1);
|
|
do_test(2);
|
|
}
|