[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