about summary refs log tree commit diff
path: root/tests
diff options
context:
space:
mode:
authorJakob Degen <jakob.e.degen@gmail.com>2023-04-04 23:07:10 -0700
committerJakob Degen <jakob.e.degen@gmail.com>2023-04-09 18:16:05 -0700
commitd8ed2fb0bb8aecfe7622134d5aba7b670056ee6d (patch)
treec10cddebea0da6ff86bf56c8b274176f2a7e0d2f /tests
parent696aaad58c57a589f6fb2ecff5bae2eec581cb71 (diff)
downloadrust-d8ed2fb0bb8aecfe7622134d5aba7b670056ee6d.tar.gz
rust-d8ed2fb0bb8aecfe7622134d5aba7b670056ee6d.zip
Fix transmute intrinsic mir validation ICE
Diffstat (limited to 'tests')
-rw-r--r--tests/ui/mir/validate/transmute_cast_sized.rs17
1 files changed, 17 insertions, 0 deletions
diff --git a/tests/ui/mir/validate/transmute_cast_sized.rs b/tests/ui/mir/validate/transmute_cast_sized.rs
new file mode 100644
index 00000000000..eaaf7eb3ecd
--- /dev/null
+++ b/tests/ui/mir/validate/transmute_cast_sized.rs
@@ -0,0 +1,17 @@
+// build-pass
+// compile-flags: -Zvalidate-mir
+// edition: 2021
+
+#![crate_type = "lib"]
+
+// Use `PhantomData` to get target-independent size
+async fn get(_r: std::marker::PhantomData<&i32>) {
+    loop {}
+}
+
+pub fn check() {
+    let mut v = get(loop {});
+    let _ = || unsafe {
+        v = std::mem::transmute([0_u8; 1]);
+    };
+}