From 4a03e45169beb9a2d69518436ecc7850401cce50 Mon Sep 17 00:00:00 2001 From: Oliver Schneider Date: Wed, 12 Jul 2017 09:29:18 +0200 Subject: [PATCH] Add tests for #113 resolves #113 --- tests/compile-fail/transmute_fat.rs | 13 +++++++++++++ tests/compile-fail/transmute_fat2.rs | 13 +++++++++++++ 2 files changed, 26 insertions(+) create mode 100644 tests/compile-fail/transmute_fat.rs create mode 100644 tests/compile-fail/transmute_fat2.rs diff --git a/tests/compile-fail/transmute_fat.rs b/tests/compile-fail/transmute_fat.rs new file mode 100644 index 000000000000..6b9e6f876481 --- /dev/null +++ b/tests/compile-fail/transmute_fat.rs @@ -0,0 +1,13 @@ +#![feature(i128_type)] + +fn main() { + #[cfg(target_pointer_width="64")] + let bad = unsafe { + std::mem::transmute::<&[u8], u128>(&[1u8]) + }; + #[cfg(target_pointer_width="32")] + let bad = unsafe { + std::mem::transmute::<&[u8], u64>(&[1u8]) + }; + bad + 1; //~ ERROR a raw memory access tried to access part of a pointer value as raw bytes +} diff --git a/tests/compile-fail/transmute_fat2.rs b/tests/compile-fail/transmute_fat2.rs new file mode 100644 index 000000000000..028ed613eee7 --- /dev/null +++ b/tests/compile-fail/transmute_fat2.rs @@ -0,0 +1,13 @@ +#![feature(i128_type)] + +fn main() { + #[cfg(target_pointer_width="64")] + let bad = unsafe { + std::mem::transmute::(42) + }; + #[cfg(target_pointer_width="32")] + let bad = unsafe { + std::mem::transmute::(42) + }; + bad[0]; //~ ERROR index out of bounds: the len is 0 but the index is 0 +}