[clang] Document the const and pure attributes (PR #205881)

Eli Friedman via cfe-commits cfe-commits at lists.llvm.org
Fri Jun 26 13:03:52 PDT 2026


================
@@ -10253,3 +10253,52 @@ The attribute is also supported with blocks and in Objective-C.
   }
   }];
 }
+
+def ConstDocs :  Documentation {
+  let Category = DocCatFunction;
+  let Content = [{
+The ``const`` attribute can be applied to the declaration of a function to signal that repeated calls to the function with the same argument values may be safe to elide because the subsequent calls will always return the same value as the initial call.
+
+The attribute informs the optimizer that the function cannot read or write to memory, does not support unwinding, will return (has no infinite loops), and that any pointer or reference arguments to the call will not be read from or written to.
----------------
efriedma-quic wrote:

For https://github.com/llvm/llvm-project/issues/36098, I just retested, and apparently gcc 17 agrees with clang.  So I guess we don't need to document that as diverging from gcc.

For https://github.com/llvm/llvm-project/issues/13130, it looks like we actually fixed it in clang 18, and didn't note it on the bug.

https://github.com/llvm/llvm-project/pull/205881


More information about the cfe-commits mailing list