[all-commits] [llvm/llvm-project] fc5e68: [libunwind] [SEH] Don't interact with foreign exce...

Mateusz Mikuła via All-commits all-commits at lists.llvm.org
Mon Oct 12 13:28:50 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: fc5e68fab965bdc8fdf6db9ae2603f9dd02dec5b
      https://github.com/llvm/llvm-project/commit/fc5e68fab965bdc8fdf6db9ae2603f9dd02dec5b
  Author: Martin Storsjö <martin at martin.st>
  Date:   2020-10-12 (Mon, 12 Oct 2020)

  Changed paths:
    M libunwind/src/Unwind-seh.cpp

  Log Message:
  -----------
  [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


  Commit: d77d727339a7439fe747f6b33c6e63ec57c6662e
      https://github.com/llvm/llvm-project/commit/d77d727339a7439fe747f6b33c6e63ec57c6662e
  Author: Martin Storsjö <martin at martin.st>
  Date:   2020-10-12 (Mon, 12 Oct 2020)

  Changed paths:
    M lld/COFF/DebugTypes.cpp

  Log Message:
  -----------
  [LLD] [COFF] Fix a ubsan error in pdb-type-server-missing.yaml

This error has been present since 5519e4da83d1abc666203.

Differential Revision: https://reviews.llvm.org/D89027


  Commit: 3b1d018c0dba45408164f5e69cb400976efa350f
      https://github.com/llvm/llvm-project/commit/3b1d018c0dba45408164f5e69cb400976efa350f
  Author: Mateusz Mikuła <mati865 at gmail.com>
  Date:   2020-10-12 (Mon, 12 Oct 2020)

  Changed paths:
    M clang/tools/CMakeLists.txt

  Log Message:
  -----------
  [MinGW][clang-shlib] Build only when LLVM_LINK_LLVM_DYLIB is enabled

Otherwise it's easy to hit 2^16 DLL exports limit.

Differential Revision: https://reviews.llvm.org/D89225


Compare: https://github.com/llvm/llvm-project/compare/8b6cd1524267...3b1d018c0dba


More information about the All-commits mailing list