rust/tests/run-pass/transmute_fat2.rs
2020-08-22 18:07:43 +02:00

17 lines
548 B
Rust

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)
};
// This created a slice with length 0, so the following will fail the bounds check.
bad[0];
}