mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 19:23:23 +01:00
Try to clarify a little how exception handling works.
llvm-svn: 148136
This commit is contained in:
parent
410d6214f9
commit
5a44c5a303
@ -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
Block a user