summaryrefslogtreecommitdiffstats
path: root/tests/ui/transmute/issue-115402-overflow-size.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ui/transmute/issue-115402-overflow-size.rs')
-rw-r--r--tests/ui/transmute/issue-115402-overflow-size.rs27
1 files changed, 27 insertions, 0 deletions
diff --git a/tests/ui/transmute/issue-115402-overflow-size.rs b/tests/ui/transmute/issue-115402-overflow-size.rs
new file mode 100644
index 000000000..91168041e
--- /dev/null
+++ b/tests/ui/transmute/issue-115402-overflow-size.rs
@@ -0,0 +1,27 @@
+#![crate_type = "lib"]
+#![feature(transmutability)]
+mod assert {
+ use std::mem::BikeshedIntrinsicFrom;
+ struct Context;
+
+ pub fn is_maybe_transmutable<Src, Dst>()
+ where
+ Dst: BikeshedIntrinsicFrom<Src, Context>,
+ {
+ }
+}
+
+fn main() {
+ pub union Uninit {
+ a: [u8; usize::MAX],
+ }
+
+ #[repr(C)]
+ struct ExplicitlyPadded(Uninit);
+
+ assert::is_maybe_transmutable::<(), ExplicitlyPadded>();
+ //~^ ERROR `()` cannot be safely transmuted into `ExplicitlyPadded`
+
+ assert::is_maybe_transmutable::<ExplicitlyPadded, ()>();
+ //~^ ERROR `ExplicitlyPadded` cannot be safely transmuted into `()`
+}