Skip to content

Commit

Permalink
tests: more crashes
Browse files Browse the repository at this point in the history
  • Loading branch information
matthiaskrgr committed Aug 4, 2024
1 parent ab1527f commit 69de294
Show file tree
Hide file tree
Showing 7 changed files with 87 additions and 0 deletions.
14 changes: 14 additions & 0 deletions tests/crashes/128094.rs
Original file line number Diff line number Diff line change
@@ -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 changes: 13 additions & 0 deletions tests/crashes/128176.rs
Original file line number Diff line number Diff line change
@@ -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 changes: 7 additions & 0 deletions tests/crashes/128190.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
//@ known-bug: rust-lang/rust#128190

fn a(&self) {
15
}

reuse a as b { struct S; }
5 changes: 5 additions & 0 deletions tests/crashes/128327.rs
Original file line number Diff line number Diff line change
@@ -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 changes: 13 additions & 0 deletions tests/crashes/128346.rs
Original file line number Diff line number Diff line change
@@ -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 changes: 16 additions & 0 deletions tests/crashes/128621-2.rs
Original file line number Diff line number Diff line change
@@ -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 changes: 19 additions & 0 deletions tests/crashes/128621.rs
Original file line number Diff line number Diff line change
@@ -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;
}

0 comments on commit 69de294

Please sign in to comment.