summaryrefslogtreecommitdiffstats
path: root/llvm/docs
diff options
context:
space:
mode:
authorReid Kleckner <reid@kleckner.net>2015-02-11 01:23:16 +0000
committerReid Kleckner <reid@kleckner.net>2015-02-11 01:23:16 +0000
commit96d011315aa01de179897eaf4e7baeddc5de1cda (patch)
treeccced202122ff25d6362be653140bfe079ab5925 /llvm/docs
parent58e985c2db3045f1416520212108f93c8c257b18 (diff)
downloadbcm5719-llvm-96d011315aa01de179897eaf4e7baeddc5de1cda.tar.gz
bcm5719-llvm-96d011315aa01de179897eaf4e7baeddc5de1cda.zip
Don't promote asynch EH invokes of nounwind functions to calls
If the landingpad of the invoke is using a personality function that catches asynch exceptions, then it can catch a trap. Also add some landingpads to invalid LLVM IR test cases that lack them. Over-the-shoulder reviewed by David Majnemer. llvm-svn: 228782
Diffstat (limited to 'llvm/docs')
-rw-r--r--llvm/docs/LangRef.rst9
1 files changed, 6 insertions, 3 deletions
diff --git a/llvm/docs/LangRef.rst b/llvm/docs/LangRef.rst
index f086fbe3e0b..f7b865d0de0 100644
--- a/llvm/docs/LangRef.rst
+++ b/llvm/docs/LangRef.rst
@@ -1236,9 +1236,12 @@ example:
normally. This produces undefined behavior at runtime if the
function ever does dynamically return.
``nounwind``
- This function attribute indicates that the function never returns
- with an unwind or exceptional control flow. If the function does
- unwind, its runtime behavior is undefined.
+ This function attribute indicates that the function never raises an
+ exception. If the function does raise an exception, its runtime
+ behavior is undefined. However, functions marked nounwind may still
+ trap or generate asynchronous exceptions. Exception handling schemes
+ that are recognized by LLVM to handle asynchronous exceptions, such
+ as SEH, will still provide their implementation defined semantics.
``optnone``
This function attribute indicates that the function is not optimized
by any optimization or code generator passes with the
OpenPOWER on IntegriCloud