about summary refs log tree commit diff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/crashes/130521.rs13
-rw-r--r--tests/crashes/130524.rs22
-rw-r--r--tests/crashes/130627.rs20
-rw-r--r--tests/crashes/130687.rs4
-rw-r--r--tests/crashes/130779.rs11
-rw-r--r--tests/crashes/130921.rs10
-rw-r--r--tests/crashes/130970.rs9
7 files changed, 89 insertions, 0 deletions
diff --git a/tests/crashes/130521.rs b/tests/crashes/130521.rs
new file mode 100644
index 00000000000..2d30b658024
--- /dev/null
+++ b/tests/crashes/130521.rs
@@ -0,0 +1,13 @@
+//@ known-bug: #130521
+
+#![feature(object_safe_for_dispatch)]
+struct Vtable(dyn Cap);
+
+trait Cap<'a> {}
+
+union Transmute {
+    t: u64,
+    u: &'static Vtable,
+}
+
+const G: &Copy = unsafe { Transmute { t: 1 }.u };
diff --git a/tests/crashes/130524.rs b/tests/crashes/130524.rs
new file mode 100644
index 00000000000..14d2269de59
--- /dev/null
+++ b/tests/crashes/130524.rs
@@ -0,0 +1,22 @@
+//@ known-bug: #130524
+
+trait Transform {
+    type Output<'a>;
+}
+
+trait Propagate<Input> {}
+
+fn new_node<T: Transform>(_c: Vec<Box<dyn for<'a> Propagate<<T as Transform>::Output<'a>>>>) -> T {
+    todo!()
+}
+
+impl<Input, T> Propagate<Input> for T {}
+struct Noop;
+
+impl Transform for Noop {
+    type Output<'a> = ();
+}
+
+fn main() {
+    let _node: Noop = new_node(vec![Box::new(Noop)]);
+}
diff --git a/tests/crashes/130627.rs b/tests/crashes/130627.rs
new file mode 100644
index 00000000000..59d3606592b
--- /dev/null
+++ b/tests/crashes/130627.rs
@@ -0,0 +1,20 @@
+//@ known-bug: #130627
+
+#![feature(trait_alias)]
+
+trait Test {}
+
+#[diagnostic::on_unimplemented(
+    message="message",
+    label="label",
+    note="note"
+)]
+trait Alias = Test;
+
+// Use trait alias as bound on type parameter.
+fn foo<T: Alias>(v: &T) {
+}
+
+pub fn main() {
+    foo(&1);
+}
diff --git a/tests/crashes/130687.rs b/tests/crashes/130687.rs
new file mode 100644
index 00000000000..361be0905df
--- /dev/null
+++ b/tests/crashes/130687.rs
@@ -0,0 +1,4 @@
+//@ known-bug: #130687
+//@ only-x86_64
+pub struct Data([u8; usize::MAX >> 16]);
+const _: &'static Data = &Data([0; usize::MAX >> 16]);
diff --git a/tests/crashes/130779.rs b/tests/crashes/130779.rs
new file mode 100644
index 00000000000..f0fd81fff44
--- /dev/null
+++ b/tests/crashes/130779.rs
@@ -0,0 +1,11 @@
+//@ known-bug: #130779
+#![feature(never_patterns)]
+
+enum E { A }
+
+fn main() {
+    match E::A {
+        ! |
+        if true => {}
+    }
+}
diff --git a/tests/crashes/130921.rs b/tests/crashes/130921.rs
new file mode 100644
index 00000000000..b7cb1303937
--- /dev/null
+++ b/tests/crashes/130921.rs
@@ -0,0 +1,10 @@
+//@ known-bug: #130921
+//@ compile-flags: -Zvalidate-mir -Copt-level=0 --crate-type lib
+
+pub fn hello() -> [impl Sized; 2] {
+    if false {
+        let x = hello();
+        let _: &[i32] = &x;
+    }
+    todo!()
+}
diff --git a/tests/crashes/130970.rs b/tests/crashes/130970.rs
new file mode 100644
index 00000000000..e1f59c155a5
--- /dev/null
+++ b/tests/crashes/130970.rs
@@ -0,0 +1,9 @@
+//@ known-bug: #130970
+//@ compile-flags: -Zmir-opt-level=5 -Zvalidate-mir
+
+fn main() {
+    extern "C" {
+        static symbol: [usize];
+    }
+    println!("{}", symbol[0]);
+}