diff --git a/llvm/docs/LangRef.html b/llvm/docs/LangRef.html index 27990837487b..1172b7cb9389 100644 --- a/llvm/docs/LangRef.html +++ b/llvm/docs/LangRef.html @@ -6179,8 +6179,8 @@ freestanding environments and non-C-based languages.

Syntax:
-  <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.

catch portion of a try/catch sequence. It defines values supplied by the personality function (pers_fn) upon re-entry to the function. The resultval has the - type somety.

+ type resultty.

Arguments:

This instruction takes a pers_fn value. This is the personality @@ -6218,7 +6218,11 @@ freestanding environments and non-C-based languages.

The clauses are applied in order from top to bottom. If two landingpad instructions are merged together through inlining, the - clauses from the calling function are appended to the list of clauses.

+ 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 clause in turn. If it doesn't + match any of the clauses, and the cleanup flag is not set, then + unwinding continues further up the call stack.

The landingpad instruction has several restrictions: