blob: 39ffe86dd496b97482f9bc5ef706fed1fb8032f5 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
// This test has been spuriously failing a lot recently (#92000).
// Ignore it until the underlying issue is fixed.
// ignore-test
// 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");
}
|