[clang] nolock/noalloc attributes (PR #84983)

via cfe-commits cfe-commits at lists.llvm.org
Tue Mar 12 16:22:57 PDT 2024


================
@@ -1402,6 +1402,29 @@ def CXX11NoReturn : InheritableAttr {
   let Documentation = [CXX11NoReturnDocs];
 }
 
+def NoLock : DeclOrTypeAttr {
+  let Spellings = [CXX11<"clang", "nolock">,
+                   C23<"clang", "nolock">,
+                   GNU<"clang_nolock">];
+
+  // Subjects - not needed?
+  //let Subjects = SubjectList<[FunctionLike, Block, TypedefName], ErrorDiag>;
----------------
Sirraide wrote:

The `Subjects` describe what entities this attribute appertains to; I would suggest setting them as appropriate unless you have a good reason not too (e.g. does it make sense to apply `nolock` to a variable declaration? If not, then we should probably not allow that in the first place).

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


More information about the cfe-commits mailing list