Skip to content

Commit

Permalink
Auto merge of #114331 - matthiaskrgr:rollup-rnrmwcx, r=matthiaskrgr
Browse files Browse the repository at this point in the history
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
  • Loading branch information
bors committed Aug 1, 2023
2 parents 3674358 + 3e62c75 commit 8791449
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 1 deletion.
3 changes: 2 additions & 1 deletion std/src/backtrace.rs
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,7 @@ use crate::backtrace_rs::{self, BytesOrWideString};
use crate::env;
use crate::ffi::c_void;
use crate::fmt;
use crate::panic::UnwindSafe;
use crate::sync::atomic::{AtomicUsize, Ordering::Relaxed};
use crate::sync::LazyLock;
use crate::sys_common::backtrace::{lock, output_filename};
Expand Down Expand Up @@ -427,7 +428,7 @@ impl fmt::Display for Backtrace {
}
}

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

fn lazy_resolve(mut capture: Capture) -> LazyResolve {
move || {
Expand Down
7 changes: 7 additions & 0 deletions std/src/backtrace/tests.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
use super::*;
use crate::panic::{RefUnwindSafe, UnwindSafe};

fn generate_fake_frames() -> Vec<BacktraceFrame> {
vec![
Expand Down Expand Up @@ -91,3 +92,9 @@ fn test_frames() {

assert!(iter.all(|(f, e)| format!("{f:#?}") == *e));
}

#[test]
fn backtrace_unwind_safe() {
fn assert_unwind_safe<T: UnwindSafe + RefUnwindSafe>() {}
assert_unwind_safe::<Backtrace>();
}

0 comments on commit 8791449

Please sign in to comment.