[PATCH] D15962: [WinEH] Verify consistent funclet unwind exits
Andy Kaylor via llvm-commits
llvm-commits at lists.llvm.org
Fri Jan 8 12:28:02 PST 2016
andrew.w.kaylor added inline comments.
================
Comment at: docs/ExceptionHandling.rst:835
@@ +834,2 @@
+destination other than caller; it is undefined behavior for such a ``call``
+or ``catchswitch`` to unwind.
----------------
Making sure I understand this, you are saying that a catchswitch can say it unwinds to caller but it must, at runtime, handle all exceptions that can actually occur in order to produce defined behavior. Is that right?
I can understand why we would want to allow call instructions with no declared unwind destination, but I'm not sure I see why we wouldn't require the unwind destination of a catchswitch to match its parent's destination. Is it to avoid having the catchswitch block appear to be a predecessor of a block that it can never reach?
It seems to me that it would be better to add a nounwind variant of the catchswitch.
http://reviews.llvm.org/D15962
More information about the llvm-commits
mailing list