[PATCH] D86233: [LangRef] Define mustprogress attribute
Atmn Patel via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Sep 25 12:20:36 PDT 2020
atmnpatel updated this revision to Diff 294400.
atmnpatel added a comment.
Updated wrt nit.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D86233/new/
https://reviews.llvm.org/D86233
Files:
llvm/docs/LangRef.rst
Index: llvm/docs/LangRef.rst
===================================================================
--- llvm/docs/LangRef.rst
+++ llvm/docs/LangRef.rst
@@ -1953,6 +1953,18 @@
the function. The instrumentation checks that the return address for the
function has not changed between the function prolog and epilog. It is
currently x86_64-specific.
+``mustprogress``
+ This attribute indicates that the function is required to return, unwind,
+ or interact with the environment in an observable way e.g. via a
+ volatile memory access, I/O, or other synchronization.
+ The ``mustprogress`` attribute is intended to model the
+ requirements of the first section of `[intro.progress] of the C++
+ Standard <http://eel.is/c++draft/intro.progress>`_. If a `mustprogress`
+ function does not satisfy this contract, the behavior is undefined. A
+ non-interacting loop in a such a function is assumed to terminate,
+ and may be removed. This attribute does not apply transitively to callees,
+ but does apply for call sites within the function. Note that `willreturn`
+ implies `mustprogress`.
Call Site Attributes
----------------------
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D86233.294400.patch
Type: text/x-patch
Size: 1180 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200925/15268b59/attachment.bin>
More information about the llvm-commits
mailing list