Skip to content

Commit

Permalink
Auto merge of rust-lang#132789 - matthiaskrgr:debug_tests, r=jieyouxu
Browse files Browse the repository at this point in the history
add some debug-assertion crash tests

r? ghost

try-job: x86_64-gnu-llvm-18
  • Loading branch information
bors committed Nov 16, 2024
2 parents 46e8d20 + 3a2c247 commit 964b99f
Show file tree
Hide file tree
Showing 11 changed files with 159 additions and 0 deletions.
14 changes: 14 additions & 0 deletions tests/crashes/116979.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
//@ known-bug: #116979
//@ compile-flags: -Csymbol-mangling-version=v0
//@ needs-rustc-debug-assertions

#![feature(dyn_star)]
#![allow(incomplete_features)]

use std::fmt::Display;

pub fn require_dyn_star_display(_: dyn* Display) {}

fn main() {
require_dyn_star_display(1usize);
}
27 changes: 27 additions & 0 deletions tests/crashes/117808.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
//@ known-bug: #117808
//@ edition:2021
//@ needs-rustc-debug-assertions

use std::future::Future;

fn hrc<R, F: for<'a> AsyncClosure<'a, (), R>>(f: F) -> F {
f
}

fn main() {
hrc(|x| async {});
}

trait AsyncClosure<'a, I, R>
where
I: 'a,
{
}

impl<'a, I, R, Fut, F> AsyncClosure<'a, I, R> for F
where
I: 'a,
F: Fn(&'a I) -> Fut,
Fut: Future<Output = R> + Send + 'a,
{
}
13 changes: 13 additions & 0 deletions tests/crashes/117877.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
//@ known-bug: #117877
//@ edition:2021
//@ needs-rustc-debug-assertions
//@ only-x86_64
#![feature(asm_const)]

use std::arch::asm;

async unsafe fn foo<'a>() {
asm!("/* {0} */", const N);
}

fn main() {}
24 changes: 24 additions & 0 deletions tests/crashes/118778.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
//@ known-bug: #118778
//@ edition:2021
//@ needs-rustc-debug-assertions

#![feature(generic_const_exprs)]
#![allow(incomplete_features)]

trait Owner {
type T<const N: u16>;
}

impl Owner for () {
type T<const N: u32> = U32<{ N + 1 }>
where
U32<{ N + 1 }>:;
}

struct U32<const N: u32>;

fn take1(_: impl Owner<T<1> = U32<1>>) {}

fn main() {
take1(());
}
19 changes: 19 additions & 0 deletions tests/crashes/118784.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
//@ known-bug: #118784
//@ needs-rustc-debug-assertions

use std::collections::HashMap;

macro_rules! all_sync_send {
($ctor:expr, $($iter:expr),+) => ({
$(
let mut x = $ctor;
is_sync(x.$iter());
let mut y = $ctor;
is_send(y.$iter());
)+
})
}

fn main() {
all_sync_send!(HashMap, HashMap);
}
11 changes: 11 additions & 0 deletions tests/crashes/120175.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
//@ known-bug: #120175
//@ needs-rustc-debug-assertions

#![feature(extern_types)]

#[link(name = "bar", import_name_type = "decorated", kind = "raw-dylib")]
extern "C" {
pub type CrossCrate;
}

fn main() {}
9 changes: 9 additions & 0 deletions tests/crashes/121176.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
//@ known-bug: #121176
//@ needs-rustc-debug-assertions
use std::fmt::Debug;

static STATIC_1: dyn Debug + Sync = *();

fn main() {
println!("{:?}", &STATIC_1);
}
5 changes: 5 additions & 0 deletions tests/crashes/123861.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
//@ known-bug: #123861
//@ needs-rustc-debug-assertions

struct _;
fn mainIterator<_ = _> {}
14 changes: 14 additions & 0 deletions tests/crashes/123862.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
//@ known-bug: #123862
//@ needs-rustc-debug-assertions

macro_rules! pos {
() => {
(file![$($pos,)* pos!()], line!())
};
}

fn outer() {
inner_inlined(main_pos, pos!());
}

fn inner_inlined() {}
10 changes: 10 additions & 0 deletions tests/crashes/130395.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
//@ known-bug: #130395
//@ needs-rustc-debug-assertions

enum U {
B(isize, usize),
}

fn main() {
let x = T::A(U::C);
}
13 changes: 13 additions & 0 deletions tests/crashes/132055.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
//@ known-bug: #132055
//@ needs-rustc-debug-assertions
//@ compile-flags: -Zmir-opt-level=5 -Zvalidate-mir

#![feature(non_lifetime_binders)]

trait Trait<T: ?Sized> {
type Assoc<'a> = i32;
}

fn produce() -> impl for<T> Trait<(), Assoc = impl Trait<T>> {
16
}

0 comments on commit 964b99f

Please sign in to comment.