[llvm-commits] [llvm] r148136 - /llvm/trunk/docs/LangRef.html

Duncan Sands baldrick at free.fr
Fri Jan 13 11:59:16 PST 2012


Author: baldrick
Date: Fri Jan 13 13:59:16 2012
New Revision: 148136

URL: http://llvm.org/viewvc/llvm-project?rev=148136&view=rev
Log:
Try to clarify a little how exception handling works.

Modified:
    llvm/trunk/docs/LangRef.html

Modified: llvm/trunk/docs/LangRef.html
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/docs/LangRef.html?rev=148136&r1=148135&r2=148136&view=diff
==============================================================================
--- llvm/trunk/docs/LangRef.html (original)
+++ llvm/trunk/docs/LangRef.html Fri Jan 13 13:59:16 2012
@@ -6179,8 +6179,8 @@
 
 <h5>Syntax:</h5>
 <pre>
-  <resultval> = landingpad <somety> personality <type> <pers_fn> <clause>+
-  <resultval> = landingpad <somety> personality <type> <pers_fn> cleanup <clause>*
+  <resultval> = landingpad <resultty> personality <type> <pers_fn> <clause>+
+  <resultval> = landingpad <resultty> personality <type> <pers_fn> cleanup <clause>*
 
   <clause> := catch <type> <value>
   <clause> := filter <array constant type> <array constant>
@@ -6194,7 +6194,7 @@
    <i><tt>catch</tt></i> portion of a <i><tt>try/catch</tt></i> sequence. It
    defines values supplied by the personality function (<tt>pers_fn</tt>) upon
    re-entry to the function. The <tt>resultval</tt> has the
-   type <tt>somety</tt>.</p>
+   type <tt>resultty</tt>.</p>
 
 <h5>Arguments:</h5>
 <p>This instruction takes a <tt>pers_fn</tt> value. This is the personality
@@ -6218,7 +6218,11 @@
 
 <p>The clauses are applied in order from top to bottom. If two
    <tt>landingpad</tt> instructions are merged together through inlining, the
-   clauses from the calling function are appended to the list of clauses.</p>
+   clauses from the calling function are appended to the list of clauses.
+   When the call stack is being unwound due to an exception being thrown, the
+   exception is compared against each <tt>clause</tt> in turn.  If it doesn't
+   match any of the clauses, and the <tt>cleanup</tt> flag is not set, then
+   unwinding continues further up the call stack.</p>
 
 <p>The <tt>landingpad</tt> instruction has several restrictions:</p>
 





More information about the llvm-commits mailing list