diff options
author | Johannes Doerfert <jdoerfert@anl.gov> | 2019-08-05 23:22:05 +0000 |
---|---|---|
committer | Johannes Doerfert <jdoerfert@anl.gov> | 2019-08-05 23:22:05 +0000 |
commit | e83f303938a5aa2f43ba1dbe024b16fec06f20cc (patch) | |
tree | e29d54da9aa01be3edf1b9eebd4c2df5d8562369 /llvm/docs | |
parent | a5c25c5d469f0f9999610bb391bd156eb70e7975 (diff) | |
download | bcm5719-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.rst | 5 |
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 |