llvm-project/libunwind
Martin Storsjö fc5e68fab9 [libunwind] [SEH] Don't interact with foreign exceptions
This unfortunately means that we don't execute C++ destructors when
unwinding past such frames for a different SEH unwind purpose (e.g.
as part of setjmp/longjmp), but that case isn't handled properly at
the moment (the original unwind intent is lost and we end up with an
unhandled exception). This patch makes sure the foreign unwind terminates
as intended.

After executing a handler, _Unwind_Resume doesn't have access to
the target frame parameter of the original foreign unwind. We also
currently blindly set ExceptionCode to STATUS_GCC_THROW - we could
set that correctly by storing the original code in _GCC_specific_handler,
but we don't have access to the original target frame value.

This also matches what libgcc's SEH unwinding code does in this case.

Differential Revision: https://reviews.llvm.org/D89231
2020-10-12 23:28:22 +03:00
..
cmake [libcxx][libcxxabi][libunwind] Use libgcc on Android 2020-04-30 15:42:32 -07:00
docs Bump the trunk major version to 12 2020-07-15 12:05:05 +02:00
include [libunwind] Ensure enough alignment for unw_cursor_t for SEH build configurations 2020-08-22 22:48:57 +03:00
src [libunwind] [SEH] Don't interact with foreign exceptions 2020-10-12 23:28:22 +03:00
test [runtimes] Use int main(int, char**) consistently in tests 2020-10-08 14:28:13 -04:00
.clang-format
CMakeLists.txt [cmake] Centralize LLVM_ENABLE_WARNINGS option 2020-09-21 10:23:17 -07:00
LICENSE.TXT Fix typos throughout the license files that somehow I and my reviewers 2019-01-21 09:52:34 +00:00