================ @@ -1389,6 +1389,68 @@ Query for this attribute with ``__has_attribute(overloadable)``. }]; } +def OwnershipDocs : Documentation { + let Heading = "ownership_holds, ownership_returns, ownership_takes (Clang " + "Static Analyzer)"; + let Category = DocCatFunction; + let Content = [{ + +.. note:: + + In order for the Clang Static Analyzer to acknowledge these attributes, the + ``Optimistic`` config needs to be set to true for the checker + ``unix.DynamicMemoryModeling``: + + ``-Xclang -analyzer-config -Xclang unix.DynamicMemoryModeling:Optimistic=true`` + +These attributes are used by the Clang Static Analyzer's dynamic memory modeling +facilities to mark custom allocating/deallocating functions. + +All 3 attributes' first parameter of type string is the type of the allocation: +``malloc``, ``new``, etc. to allow for catching mismatched deallocation bugs to +be found. ---------------- steakhal wrote:
Here I'm not exactly sure what `etc` refers to. Is the set of accepted values here backed in or it can be the name of any previously declared function? Or even any identifier? https://github.com/llvm/llvm-project/pull/121759 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits