[PATCH] D147739: [libunwind] [SEH] Handle ExceptionContinueExecution in forced unwinding
Martin Storsjö via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Apr 10 14:03:54 PDT 2023
This revision was landed with ongoing or failed builds.
This revision was automatically updated to reflect the committed changes.
Closed by commit rG66632e879814: [libunwind] [SEH] Handle ExceptionContinueExecution in forced unwinding (authored by mstorsjo).
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D147739/new/
https://reviews.llvm.org/D147739
Files:
libunwind/src/Unwind-seh.cpp
Index: libunwind/src/Unwind-seh.cpp
===================================================================
--- libunwind/src/Unwind-seh.cpp
+++ libunwind/src/Unwind-seh.cpp
@@ -217,6 +217,7 @@
disp_ctx->ContextRecord,
disp_ctx);
switch (ms_act) {
+ case ExceptionContinueExecution: return _URC_END_OF_STACK;
case ExceptionContinueSearch: return _URC_CONTINUE_UNWIND;
case 4 /*ExceptionExecuteHandler*/:
return phase2 ? _URC_INSTALL_CONTEXT : _URC_HANDLER_FOUND;
@@ -304,6 +305,12 @@
// We may get control back if landing pad calls _Unwind_Resume().
__unw_resume(&cursor2);
break;
+ case _URC_END_OF_STACK:
+ _LIBUNWIND_TRACE_UNWINDING("unwind_phase2_forced(ex_ojb=%p): "
+ "personality returned "
+ "_URC_END_OF_STACK",
+ (void *)exception_object);
+ break;
default:
// Personality routine returned an unknown result code.
_LIBUNWIND_TRACE_UNWINDING("unwind_phase2_forced(ex_ojb=%p): "
@@ -312,6 +319,8 @@
(void *)exception_object, personalityResult);
return _URC_FATAL_PHASE2_ERROR;
}
+ if (personalityResult == _URC_END_OF_STACK)
+ break;
}
}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D147739.512250.patch
Type: text/x-patch
Size: 1424 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20230410/db6190ec/attachment.bin>
More information about the llvm-commits
mailing list