Skip to content

Commit 8791449

Browse files
committed
Auto merge of #114331 - matthiaskrgr:rollup-rnrmwcx, r=matthiaskrgr
Rollup of 7 pull requests Successful merges: - #100455 (Implement RefUnwindSafe for Backtrace) - #113428 (coverage: Replace `ExpressionOperandId` with enum `Operand`) - #114283 (Use parking lot's rwlock even without parallel-rustc) - #114288 (Improve diagnostic for wrong borrow on binary operations) - #114296 (interpret: fix alignment handling for Repeat expressions) - #114306 ([rustc_data_structures][perf] Simplify base_n::push_str.) - #114320 (Cover statements for stable_mir) r? `@ghost` `@rustbot` modify labels: rollup
2 parents 3674358 + 3e62c75 commit 8791449

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

std/src/backtrace.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,7 @@ use crate::backtrace_rs::{self, BytesOrWideString};
9292
use crate::env;
9393
use crate::ffi::c_void;
9494
use crate::fmt;
95+
use crate::panic::UnwindSafe;
9596
use crate::sync::atomic::{AtomicUsize, Ordering::Relaxed};
9697
use crate::sync::LazyLock;
9798
use crate::sys_common::backtrace::{lock, output_filename};
@@ -427,7 +428,7 @@ impl fmt::Display for Backtrace {
427428
}
428429
}
429430

430-
type LazyResolve = impl (FnOnce() -> Capture) + Send + Sync;
431+
type LazyResolve = impl (FnOnce() -> Capture) + Send + Sync + UnwindSafe;
431432

432433
fn lazy_resolve(mut capture: Capture) -> LazyResolve {
433434
move || {

std/src/backtrace/tests.rs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
use super::*;
2+
use crate::panic::{RefUnwindSafe, UnwindSafe};
23

34
fn generate_fake_frames() -> Vec<BacktraceFrame> {
45
vec![
@@ -91,3 +92,9 @@ fn test_frames() {
9192

9293
assert!(iter.all(|(f, e)| format!("{f:#?}") == *e));
9394
}
95+
96+
#[test]
97+
fn backtrace_unwind_safe() {
98+
fn assert_unwind_safe<T: UnwindSafe + RefUnwindSafe>() {}
99+
assert_unwind_safe::<Backtrace>();
100+
}

0 commit comments

Comments
 (0)