rust/tests/panic/transmute_fat2.rs

11 lines
524 B
Rust
Raw Normal View History

2017-07-12 02:29:18 -05:00
fn main() {
#[cfg(all(target_endian = "little", target_pointer_width = "64"))]
let bad = unsafe { std::mem::transmute::<u128, &[u8]>(42) };
#[cfg(all(target_endian = "big", target_pointer_width = "64"))]
let bad = unsafe { std::mem::transmute::<u128, &[u8]>(42 << 64) };
#[cfg(all(target_endian = "little", target_pointer_width = "32"))]
let bad = unsafe { std::mem::transmute::<u64, &[u8]>(42) };
2020-05-03 05:24:40 -05:00
// This created a slice with length 0, so the following will fail the bounds check.
2019-11-29 06:18:54 -06:00
bad[0];
2017-07-12 02:29:18 -05:00
}