diff options
author | Joseph Tremoulet <jotrem@microsoft.com> | 2016-01-10 04:28:38 +0000 |
---|---|---|
committer | Joseph Tremoulet <jotrem@microsoft.com> | 2016-01-10 04:28:38 +0000 |
commit | e28885e6936fc5487c9e11cda841282d2f43c9d1 (patch) | |
tree | aed0a61d8bcf0063bd4a529d7be2338b6ae3be74 /llvm/test/Bitcode | |
parent | ca4d93a82fd77b1baadc7f604cd97ed0bafcb717 (diff) | |
download | bcm5719-llvm-e28885e6936fc5487c9e11cda841282d2f43c9d1.tar.gz bcm5719-llvm-e28885e6936fc5487c9e11cda841282d2f43c9d1.zip |
[WinEH] Verify unwind edges against EH pad tree
Summary:
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.
Reviewers: rnk, majnemer, andrew.w.kaylor
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D15961
llvm-svn: 257272
Diffstat (limited to 'llvm/test/Bitcode')
-rw-r--r-- | llvm/test/Bitcode/compatibility.ll | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/llvm/test/Bitcode/compatibility.ll b/llvm/test/Bitcode/compatibility.ll index 34c4a073b54..ae12a24ede4 100644 --- a/llvm/test/Bitcode/compatibility.ll +++ b/llvm/test/Bitcode/compatibility.ll @@ -885,7 +885,8 @@ catchpad: ; CHECK-NEXT: br label %body body: - invoke void @f.ccc() to label %continue unwind label %terminate.inner + invoke void @f.ccc() [ "funclet"(token %catch) ] + to label %continue unwind label %terminate.inner catchret from %catch to label %return ; CHECK: catchret from %catch to label %return |