@@ -135,7 +135,7 @@ cfg_if::cfg_if! {
135
135
EHAction :: None | EHAction :: Cleanup ( _) => {
136
136
return continue_unwind( exception_object, context) ;
137
137
}
138
- EHAction :: Catch ( _) => {
138
+ EHAction :: Catch ( _) | EHAction :: Filter ( _ ) => {
139
139
// EHABI requires the personality routine to update the
140
140
// SP value in the barrier cache of the exception object.
141
141
( * exception_object) . private[ 5 ] =
@@ -147,7 +147,7 @@ cfg_if::cfg_if! {
147
147
} else {
148
148
match eh_action {
149
149
EHAction :: None => return continue_unwind( exception_object, context) ,
150
- EHAction :: Cleanup ( lpad) | EHAction :: Catch ( lpad) => {
150
+ EHAction :: Cleanup ( lpad) | EHAction :: Catch ( lpad) | EHAction :: Filter ( lpad ) => {
151
151
uw:: _Unwind_SetGR(
152
152
context,
153
153
UNWIND_DATA_REG . 0 ,
@@ -201,13 +201,13 @@ cfg_if::cfg_if! {
201
201
if actions as i32 & uw:: _UA_SEARCH_PHASE as i32 != 0 {
202
202
match eh_action {
203
203
EHAction :: None | EHAction :: Cleanup ( _) => uw:: _URC_CONTINUE_UNWIND,
204
- EHAction :: Catch ( _) => uw:: _URC_HANDLER_FOUND,
204
+ EHAction :: Catch ( _) | EHAction :: Filter ( _ ) => uw:: _URC_HANDLER_FOUND,
205
205
EHAction :: Terminate => uw:: _URC_FATAL_PHASE1_ERROR,
206
206
}
207
207
} else {
208
208
match eh_action {
209
209
EHAction :: None => uw:: _URC_CONTINUE_UNWIND,
210
- EHAction :: Cleanup ( lpad) | EHAction :: Catch ( lpad) => {
210
+ EHAction :: Cleanup ( lpad) | EHAction :: Catch ( lpad) | EHAction :: Filter ( lpad ) => {
211
211
uw:: _Unwind_SetGR(
212
212
context,
213
213
UNWIND_DATA_REG . 0 ,
0 commit comments