diff options
| author | Matthias Krüger <matthias.krueger@famsik.de> | 2024-04-19 22:23:17 +0200 |
|---|---|---|
| committer | Matthias Krüger <matthias.krueger@famsik.de> | 2024-04-19 23:09:37 +0200 |
| commit | b015f61488f4f25e2007446540e2201a0ce6c0e1 (patch) | |
| tree | 27788df3da6e9dd4ec95a5ead6c7809b84617f3e | |
| parent | e0586a6e1a013c99cee2ad63a915b85ff716af0a (diff) | |
| download | rust-b015f61488f4f25e2007446540e2201a0ce6c0e1.tar.gz rust-b015f61488f4f25e2007446540e2201a0ce6c0e1.zip | |
add more known-crashes tests
| -rw-r--r-- | tests/crashes/103708.rs | 16 | ||||
| -rw-r--r-- | tests/crashes/104685.rs | 15 | ||||
| -rw-r--r-- | tests/crashes/105249.rs | 16 | ||||
| -rw-r--r-- | tests/crashes/115994.rs | 17 | ||||
| -rw-r--r-- | tests/crashes/116721.rs | 9 | ||||
| -rw-r--r-- | tests/crashes/118244.rs | 22 | ||||
| -rw-r--r-- | tests/crashes/124083.rs | 9 | ||||
| -rw-r--r-- | tests/crashes/124151.rs | 14 | ||||
| -rw-r--r-- | tests/crashes/124164.rs | 4 |
9 files changed, 122 insertions, 0 deletions
diff --git a/tests/crashes/103708.rs b/tests/crashes/103708.rs new file mode 100644 index 00000000000..f3154279cf5 --- /dev/null +++ b/tests/crashes/103708.rs @@ -0,0 +1,16 @@ +//@ known-bug: #103708 +#![feature(min_specialization)] + +trait MySpecTrait { + fn f(); +} + +impl<'a, T: ?Sized> MySpecTrait for T { + default fn f() {} +} + +impl<'a, T: ?Sized> MySpecTrait for &'a T { + fn f() {} +} + +fn main() {} diff --git a/tests/crashes/104685.rs b/tests/crashes/104685.rs new file mode 100644 index 00000000000..25ddbb2efaa --- /dev/null +++ b/tests/crashes/104685.rs @@ -0,0 +1,15 @@ +//@ known-bug: #104685 +//@ compile-flags: -Zextra-const-ub-checks +#![feature(extern_types)] + +extern { + pub type ExternType; +} + +extern "C" { + pub static EXTERN: ExternType; +} + +pub static EMPTY: () = unsafe { &EXTERN; }; + +fn main() {} diff --git a/tests/crashes/105249.rs b/tests/crashes/105249.rs new file mode 100644 index 00000000000..592ed5b6dbc --- /dev/null +++ b/tests/crashes/105249.rs @@ -0,0 +1,16 @@ +//@ known-bug: #105249 +//@ compile-flags: -Zpolymorphize=on + +trait Foo<T> { + fn print<'a>(&'a self) where T: 'a { println!("foo"); } +} + +impl<'a> Foo<&'a ()> for () { } + +trait Bar: for<'a> Foo<&'a ()> { } + +impl Bar for () {} + +fn main() { + (&() as &dyn Bar).print(); // Segfault +} diff --git a/tests/crashes/115994.rs b/tests/crashes/115994.rs new file mode 100644 index 00000000000..23d1507136f --- /dev/null +++ b/tests/crashes/115994.rs @@ -0,0 +1,17 @@ +//@ known-bug: #115994 +//@ compile-flags: -Cdebuginfo=2 --crate-type lib + +// To prevent "overflow while adding drop-check rules". +use std::mem::ManuallyDrop; + +pub enum Foo<U> { + Leaf(U), + + Branch(BoxedFoo<BoxedFoo<U>>), +} + +pub type BoxedFoo<U> = ManuallyDrop<Box<Foo<U>>>; + +pub fn test() -> Foo<usize> { + todo!() +} diff --git a/tests/crashes/116721.rs b/tests/crashes/116721.rs new file mode 100644 index 00000000000..fc1a6530bc8 --- /dev/null +++ b/tests/crashes/116721.rs @@ -0,0 +1,9 @@ +//@ known-bug: #116721 +//@ compile-flags: -Zmir-opt-level=3 --emit=mir +fn hey<T>(it: &[T]) +where + [T]: Clone, +{ +} + +fn main() {} diff --git a/tests/crashes/118244.rs b/tests/crashes/118244.rs new file mode 100644 index 00000000000..bfa1f5b7dd4 --- /dev/null +++ b/tests/crashes/118244.rs @@ -0,0 +1,22 @@ +//@ known-bug: #118244 +//@ compile-flags: -Cdebuginfo=2 + +#![allow(incomplete_features)] +#![feature(generic_const_exprs)] +struct Inner<const N: usize, const M: usize>; +impl<const N: usize, const M: usize> Inner<N, M> where [(); N + M]: { + fn i() -> Self { + Self + } +} + +struct Outer<const A: usize, const B: usize>(Inner<A, { B * 2 }>) where [(); A + (B * 2)]:; +impl<const A: usize, const B: usize> Outer<A, B> where [(); A + (B * 2)]: { + fn o() -> Self { + Self(Inner::i()) + } +} + +fn main() { + Outer::<1, 1>::o(); +} diff --git a/tests/crashes/124083.rs b/tests/crashes/124083.rs new file mode 100644 index 00000000000..e9cbf3f7086 --- /dev/null +++ b/tests/crashes/124083.rs @@ -0,0 +1,9 @@ +//@ known-bug: #124083 + +struct Outest(&'a ()); + +fn make() -> Outest {} + +fn main() { + if let Outest("foo") = make() {} +} diff --git a/tests/crashes/124151.rs b/tests/crashes/124151.rs new file mode 100644 index 00000000000..5e55ac2aa94 --- /dev/null +++ b/tests/crashes/124151.rs @@ -0,0 +1,14 @@ +//@ known-bug: #124151 +#![feature(generic_const_exprs)] + +use std::ops::Add; + +pub struct Dimension; + +pub struct Quantity<S, const D: Dimension>(S); + +impl<const D: Dimension, LHS, RHS> Add<LHS, D> for Quantity<LHS, { Dimension }> {} + +pub fn add<const U: Dimension>(x: Quantity<f32, U>) -> Quantity<f32, U> { + x + y +} diff --git a/tests/crashes/124164.rs b/tests/crashes/124164.rs new file mode 100644 index 00000000000..8c9b4bddbe8 --- /dev/null +++ b/tests/crashes/124164.rs @@ -0,0 +1,4 @@ +//@ known-bug: #124164 +static S_COUNT: = std::sync::atomic::AtomicUsize::new(0); + +fn main() {} |
