[PATCH] D15961: [WinEH] Verify unwind edges against EH pad tree

Joseph Tremoulet via llvm-commits llvm-commits at lists.llvm.org
Thu Jan 7 11:56:41 PST 2016


JosephTremoulet created this revision.
JosephTremoulet added reviewers: majnemer, rnk, andrew.w.kaylor.
JosephTremoulet added a subscriber: llvm-commits.

Funclet EH personalities require a tree-like nesting among funclets
(enforced by the ParentPad linkage in the IR), and also require that
unwind edges conform to certain rules with respect to the tree:
 - An unwind edge may exit 0 or more ancestor pads
 - An unwind edge must enter exactly one EH pad, which must be distinct
   from any exited pads
 - A cleanupret's edge must exit its cleanuppad

Describe these rules in the LangRef, and enforce them in the verifier.


http://reviews.llvm.org/D15961

Files:
  docs/ExceptionHandling.rst
  docs/LangRef.rst
  lib/IR/Verifier.cpp
  test/Bitcode/compatibility.ll
  test/Feature/exception.ll
  test/Verifier/invalid-eh.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D15961.44239.patch
Type: text/x-patch
Size: 15889 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160107/a71fcc08/attachment.bin>


More information about the llvm-commits mailing list