1
Fork 0

Auto merge of #92845 - Amanieu:std_personality, r=Mark-Simulacrum

Move EH personality functions to std

These were previously in the panic_unwind crate with dummy stubs in the
panic_abort crate. However it turns out that this is insufficient: we
still need a proper personality function even with -C panic=abort to
handle the following cases:

1) `extern "C-unwind"` still needs to catch foreign exceptions with -C
panic=abort to turn them into aborts. This requires landing pads and a
personality function.

2) ARM EHABI uses the personality function when creating backtraces.
The dummy personality function in panic_abort was causing backtrace
generation to get stuck in a loop since the personality function is
responsible for advancing the unwind state to the next frame.

Fixes #41004
This commit is contained in:
bors 2022-08-28 04:16:29 +00:00
commit 91f128baf7
16 changed files with 379 additions and 339 deletions

View file

@ -594,6 +594,7 @@ pub mod alloc;
// Private support modules
mod panicking;
mod personality;
#[path = "../../backtrace/src/lib.rs"]
#[allow(dead_code, unused_attributes)]