54 lines
1.3 KiB
Rust
54 lines
1.3 KiB
Rust
// This test has been spuriously failing a lot recently (#92000).
|
|
// Ignore it until the underlying issue is fixed.
|
|
//@ ignore-test (#92000)
|
|
|
|
// Regression test for #87481: short backtrace formatting cut off the entire stack trace.
|
|
|
|
// Codegen-units is specified here so that we can replicate a typical rustc invocation which
|
|
// is not normally limited to 1 CGU. This is important so that the `__rust_begin_short_backtrace`
|
|
// and `__rust_end_short_backtrace` symbols are not marked internal to the CGU and thus will be
|
|
// named in the symbol table.
|
|
//@ compile-flags: -O -Ccodegen-units=8
|
|
|
|
//@ run-fail
|
|
//@ check-run-results
|
|
//@ exec-env:RUST_BACKTRACE=1
|
|
|
|
// We need to normalize out frame 5 because without debug info, dbghelp.dll doesn't know where CGU
|
|
// internal functions like `main` start or end and so it will return whatever symbol happens
|
|
// to be located near the address.
|
|
//@ normalize-stderr-test: "5: .*" -> "5: some Rust fn"
|
|
|
|
// Backtraces are pretty broken in general on i686-pc-windows-msvc (#62897).
|
|
//@ only-x86_64-pc-windows-msvc
|
|
|
|
fn main() {
|
|
a();
|
|
}
|
|
|
|
// Make these no_mangle so dbghelp.dll can figure out the symbol names.
|
|
|
|
#[no_mangle]
|
|
#[inline(never)]
|
|
fn a() {
|
|
b();
|
|
}
|
|
|
|
#[no_mangle]
|
|
#[inline(never)]
|
|
fn b() {
|
|
c();
|
|
}
|
|
|
|
#[no_mangle]
|
|
#[inline(never)]
|
|
fn c() {
|
|
d();
|
|
}
|
|
|
|
#[no_mangle]
|
|
#[inline(never)]
|
|
fn d() {
|
|
panic!("d was called");
|
|
}
|