[PATCH] D79474: [Windows EH] Fix the order of Nested try-catches in $tryMap$ table

Ten Tzen via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed May 13 23:23:14 PDT 2020


tentzen updated this revision to Diff 263919.
tentzen added a comment.

Per discussion in https://reviews.llvm.org/D79760 , x86 test case there failed.

It turned out that Windows 32-bit runtime expects post-ordering when looking for catch-handler, but sharing the code with 64-bit runtime when looking up EH State during DTor cleaning-up. 
As a result, MSVC/X86 today fails on Test7 in ehthrow.cxx.

Incorrect Ctor/Dtor ordering is less significant than Catch handling.  for now LLVM must be compatible with MSVC.  
This change also apply to the other two targets on Windows; Arm32 & Arm64.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D79474/new/

https://reviews.llvm.org/D79474

Files:
  llvm/lib/CodeGen/WinEHPrepare.cpp
  llvm/test/CodeGen/AArch64/win-catchpad-nested-cxx.ll
  llvm/test/CodeGen/X86/win-catchpad-nested-cxx.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D79474.263919.patch
Type: text/x-patch
Size: 6026 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200514/f4d4064d/attachment.bin>


More information about the llvm-commits mailing list