forked from OSchip/llvm-project
Try to clarify a little how exception handling works.
llvm-svn: 148136
This commit is contained in:
parent
d7d5790cb6
commit
df9d781510
|
@ -6179,8 +6179,8 @@ freestanding environments and non-C-based languages.</p>
|
|||
|
||||
<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 @@ freestanding environments and non-C-based languages.</p>
|
|||
<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 @@ freestanding environments and non-C-based languages.</p>
|
|||
|
||||
<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>
|
||||
|
||||
|
|
Loading…
Reference in New Issue