tests: more crashes

This commit is contained in:
Matthias Krüger 2024-08-04 21:25:49 +02:00
parent ab1527f1d6
commit 69de294c31
7 changed files with 87 additions and 0 deletions

14
tests/crashes/128094.rs Normal file
View File

@ -0,0 +1,14 @@
//@ known-bug: rust-lang/rust#128094
//@ compile-flags: -Zmir-opt-level=5 --edition=2018
pub enum Request {
TestSome(T),
}
pub async fn handle_event(event: Request) {
async move {
static instance: Request = Request { bar: 17 };
&instance
}
.await;
}

13
tests/crashes/128176.rs Normal file
View File

@ -0,0 +1,13 @@
//@ known-bug: rust-lang/rust#128176
#![feature(generic_const_exprs)]
#![feature(object_safe_for_dispatch)]
trait X {
type Y<const N: i16>;
}
const _: () = {
fn f2<'a>(arg: Box<dyn X<Y<1> = &'a ()>>) {}
};
fn main() {}

7
tests/crashes/128190.rs Normal file
View File

@ -0,0 +1,7 @@
//@ known-bug: rust-lang/rust#128190
fn a(&self) {
15
}
reuse a as b { struct S; }

5
tests/crashes/128327.rs Normal file
View File

@ -0,0 +1,5 @@
//@ known-bug: rust-lang/rust#128327
use std::ops::Deref;
struct Apple((Apple, <&'static [f64] as Deref>::Target(Banana ? Citron)));
fn main(){}

13
tests/crashes/128346.rs Normal file
View File

@ -0,0 +1,13 @@
//@ known-bug: rust-lang/rust#128346
macro_rules! one_rep {
( $($a:ident)* ) => {
A(
const ${concat($a, Z)}: i32 = 3;
)*
};
}
fn main() {
one_rep!(A B C);
}

16
tests/crashes/128621-2.rs Normal file
View File

@ -0,0 +1,16 @@
//@ known-bug: rust-lang/rust#128621
#![feature(ptr_metadata)]
use std::{ops::FnMut, ptr::Pointee};
pub type EmplacerFn<'a, T> = dyn for<'b> FnMut(<T as Pointee>::Metadata) + 'a;
pub struct Emplacer<'a, T>(EmplacerFn<'a, T>);
impl<'a, T> Emplacer<'a, T> {
pub unsafe fn from_fn<'b>(emplacer_fn: &'b mut EmplacerFn<'a, T>) -> &'b mut Self {
unsafe { &mut *((emplacer_fn as *mut EmplacerFn<'a, T>) as *mut Self) }
}
}
pub fn main() {}

19
tests/crashes/128621.rs Normal file
View File

@ -0,0 +1,19 @@
//@ known-bug: rust-lang/rust#128621
trait Trait {
type Associated;
}
impl Trait for i32 {
type Associated = i64;
}
trait Generic<T> {}
type TraitObject = dyn Generic<<i32 as Trait>::Associated>;
struct Wrap(TraitObject);
fn cast(x: *mut TraitObject) {
x as *mut Wrap;
}