summaryrefslogtreecommitdiffstats
path: root/llvm/docs
diff options
context:
space:
mode:
authorJohannes Doerfert <jdoerfert@anl.gov>2019-08-05 23:22:05 +0000
committerJohannes Doerfert <jdoerfert@anl.gov>2019-08-05 23:22:05 +0000
commite83f303938a5aa2f43ba1dbe024b16fec06f20cc (patch)
treee29d54da9aa01be3edf1b9eebd4c2df5d8562369 /llvm/docs
parenta5c25c5d469f0f9999610bb391bd156eb70e7975 (diff)
downloadbcm5719-llvm-e83f303938a5aa2f43ba1dbe024b16fec06f20cc.tar.gz
bcm5719-llvm-e83f303938a5aa2f43ba1dbe024b16fec06f20cc.zip
[Attributor] Deduce the "no-return" attribute for functions
A function is "no-return" if we never reach a return instruction, either because there are none or the ones that exist are dead. Test have been adjusted: - either noreturn was added, or - noreturn was avoided by modifying the code. The new noreturn_{sync,async} test make sure we do handle invoke instructions with a noreturn (and potentially nowunwind) callee correctly, even in the presence of potential asynchronous exceptions. llvm-svn: 367948
Diffstat (limited to 'llvm/docs')
-rw-r--r--llvm/docs/LangRef.rst5
1 files changed, 3 insertions, 2 deletions
diff --git a/llvm/docs/LangRef.rst b/llvm/docs/LangRef.rst
index a6acdeaf85e..abbd7941b5d 100644
--- a/llvm/docs/LangRef.rst
+++ b/llvm/docs/LangRef.rst
@@ -1480,8 +1480,9 @@ example:
target-specific ABI normally permits it.
``noreturn``
This function attribute indicates that the function never returns
- normally. This produces undefined behavior at runtime if the
- function ever does dynamically return.
+ normally, hence through a return instruction. This produces undefined
+ behavior at runtime if the function ever does dynamically return. Annotated
+ functions may still raise an exception, i.a., ``nounwind`` is not implied.
``norecurse``
This function attribute indicates that the function does not call itself
either directly or indirectly down any possible call path. This produces
OpenPOWER on IntegriCloud