[PATCH] D86233: [LangRef] Define maynotprogress attribute

Atmn Patel via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Sep 8 21:03:22 PDT 2020


atmnpatel updated this revision to Diff 290633.
atmnpatel added a comment.

Updated the description based on conversations on the mailing lists.


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,15 @@
     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.
+``maynotprogress``
+    This attribute indicates that the function is permitted to not return
+    or interact with the environment. Functions without this attribute are
+    implicitly ``mustprogress`` and they must eventually return or
+    interact with the environment in some way, e.g. via a side effect or
+    synchronization. ``mustprogress`` is intended to model the
+    requirements of the first section of `[intro.progress] of the C++
+    Standard <http://eel.is/c++draft/intro.progress>`_. This function
+    attribute does not apply transitively to callees.
 
 Call Site Attributes
 ----------------------


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D86233.290633.patch
Type: text/x-patch
Size: 980 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200909/660c94a1/attachment.bin>


More information about the llvm-commits mailing list