summaryrefslogtreecommitdiffstats
path: root/src/test/mir-opt/issues/issue-75439.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/mir-opt/issues/issue-75439.rs')
-rw-r--r--src/test/mir-opt/issues/issue-75439.rs18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/test/mir-opt/issues/issue-75439.rs b/src/test/mir-opt/issues/issue-75439.rs
new file mode 100644
index 000000000..ae2e03631
--- /dev/null
+++ b/src/test/mir-opt/issues/issue-75439.rs
@@ -0,0 +1,18 @@
+// EMIT_MIR issue_75439.foo.MatchBranchSimplification.diff
+
+use std::mem::transmute;
+
+pub fn foo(bytes: [u8; 16]) -> Option<[u8; 4]> {
+ // big endian `u32`s
+ let dwords: [u32; 4] = unsafe { transmute(bytes) };
+ const FF: u32 = 0x0000_ffff_u32.to_be();
+ if let [0, 0, 0 | FF, ip] = dwords {
+ Some(unsafe { transmute(ip) })
+ } else {
+ None
+ }
+}
+
+fn main() {
+ let _ = foo([0; 16]);
+}