summaryrefslogtreecommitdiffstats
path: root/library/std/src/personality/dwarf/eh.rs
diff options
context:
space:
mode:
Diffstat (limited to 'library/std/src/personality/dwarf/eh.rs')
-rw-r--r--library/std/src/personality/dwarf/eh.rs5
1 files changed, 4 insertions, 1 deletions
diff --git a/library/std/src/personality/dwarf/eh.rs b/library/std/src/personality/dwarf/eh.rs
index 87585a8fc..79624703a 100644
--- a/library/std/src/personality/dwarf/eh.rs
+++ b/library/std/src/personality/dwarf/eh.rs
@@ -47,6 +47,7 @@ pub enum EHAction {
None,
Cleanup(usize),
Catch(usize),
+ Filter(usize),
Terminate,
}
@@ -142,9 +143,11 @@ unsafe fn interpret_cs_action(
let ttype_index = action_reader.read_sleb128();
if ttype_index == 0 {
EHAction::Cleanup(lpad)
- } else {
+ } else if ttype_index > 0 {
// Stop unwinding Rust panics at catch_unwind.
EHAction::Catch(lpad)
+ } else {
+ EHAction::Filter(lpad)
}
}
}