about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMatthias Krüger <matthias.krueger@famsik.de>2024-08-18 12:50:01 +0200
committerMatthias Krüger <matthias.krueger@famsik.de>2024-08-19 00:38:28 +0200
commit5fe70afc8c6372018da586f3a9068ac593eb80b4 (patch)
treeb496712953ecd20d3f31ceed1d2b4eb9cba6f1a3
parent6de928dce9472b864f4e5d590dd7aa2075cb7551 (diff)
downloadrust-5fe70afc8c6372018da586f3a9068ac593eb80b4.tar.gz
rust-5fe70afc8c6372018da586f3a9068ac593eb80b4.zip
crashes: more tests
-rw-r--r--tests/crashes/129150.rs7
-rw-r--r--tests/crashes/129166.rs7
-rw-r--r--tests/crashes/129205.rs5
-rw-r--r--tests/crashes/129209.rs11
-rw-r--r--tests/crashes/129214.rs30
-rw-r--r--tests/crashes/129216.rs12
-rw-r--r--tests/crashes/129219.rs26
7 files changed, 98 insertions, 0 deletions
diff --git a/tests/crashes/129150.rs b/tests/crashes/129150.rs
new file mode 100644
index 00000000000..9f8c2ba1739
--- /dev/null
+++ b/tests/crashes/129150.rs
@@ -0,0 +1,7 @@
+//@ known-bug: rust-lang/rust#129150
+//@ only-x86_64
+use std::arch::x86_64::_mm_blend_ps;
+
+pub fn main() {
+     _mm_blend_ps(1, 2, &const {} );
+}
diff --git a/tests/crashes/129166.rs b/tests/crashes/129166.rs
new file mode 100644
index 00000000000..d3635d410db
--- /dev/null
+++ b/tests/crashes/129166.rs
@@ -0,0 +1,7 @@
+//@ known-bug: rust-lang/rust#129166
+
+fn main() {
+    #[cfg_eval]
+    #[cfg]
+    0
+}
diff --git a/tests/crashes/129205.rs b/tests/crashes/129205.rs
new file mode 100644
index 00000000000..f328fca247a
--- /dev/null
+++ b/tests/crashes/129205.rs
@@ -0,0 +1,5 @@
+//@ known-bug: rust-lang/rust#129205
+
+fn x<T: Copy>() {
+    T::try_from();
+}
diff --git a/tests/crashes/129209.rs b/tests/crashes/129209.rs
new file mode 100644
index 00000000000..249fa41552e
--- /dev/null
+++ b/tests/crashes/129209.rs
@@ -0,0 +1,11 @@
+//@ known-bug: rust-lang/rust#129209
+
+impl<
+        const N: usize = {
+            static || {
+                Foo([0; X]);
+            }
+        },
+    > PartialEq for True
+{
+}
diff --git a/tests/crashes/129214.rs b/tests/crashes/129214.rs
new file mode 100644
index 00000000000..e14b9f379d6
--- /dev/null
+++ b/tests/crashes/129214.rs
@@ -0,0 +1,30 @@
+//@ known-bug: rust-lang/rust#129214
+//@ compile-flags: -Zvalidate-mir -Copt-level=3 --crate-type=lib
+
+trait to_str {}
+
+trait map<T> {
+    fn map<U, F>(&self, f: F) -> Vec<U>
+    where
+        F: FnMut(&Box<usize>) -> U;
+}
+impl<T> map<T> for Vec<T> {
+    fn map<U, F>(&self, mut f: F) -> Vec<U>
+    where
+        F: FnMut(&T) -> U,
+    {
+        let mut r = Vec::new();
+        for i in self {
+            r.push(f(i));
+        }
+        r
+    }
+}
+
+fn foo<U, T: map<U>>(x: T) -> Vec<String> {
+    x.map(|_e| "hi".to_string())
+}
+
+pub fn main() {
+    assert_eq!(foo(vec![1]), ["hi".to_string()]);
+}
diff --git a/tests/crashes/129216.rs b/tests/crashes/129216.rs
new file mode 100644
index 00000000000..0ad6bc5c71b
--- /dev/null
+++ b/tests/crashes/129216.rs
@@ -0,0 +1,12 @@
+//@ known-bug: rust-lang/rust#129216
+//@ only-linux
+
+trait Mirror {
+    type Assoc;
+}
+
+struct Foo;
+
+fn main() {
+    <Foo as Mirror>::Assoc::new();
+}
diff --git a/tests/crashes/129219.rs b/tests/crashes/129219.rs
new file mode 100644
index 00000000000..effbfcd8b8e
--- /dev/null
+++ b/tests/crashes/129219.rs
@@ -0,0 +1,26 @@
+//@ known-bug: rust-lang/rust#129219
+//@ compile-flags: -Zmir-opt-level=5 -Zvalidate-mir --edition=2018
+
+use core::marker::Unsize;
+
+pub trait CastTo<T: ?Sized>: Unsize<T> {}
+
+impl<T: ?Sized, U: ?Sized> CastTo<T> for U {}
+
+impl<T: ?Sized> Cast for T {}
+pub trait Cast {
+    fn cast<T: ?Sized>(&self) -> &T
+    where
+        Self: CastTo<T>,
+    {
+        self
+    }
+}
+
+pub trait Foo {}
+impl Foo for [i32; 0] {}
+
+fn main() {
+    let x: &dyn Foo = &[];
+    let x = x.cast::<[i32]>();
+}