[PATCH] D63954: Add lifetime categories attributes
Matthias Gehre via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Fri Jun 28 13:25:15 PDT 2019
mgehre created this revision.
mgehre added a reviewer: gribozavr.
Herald added a project: clang.
This is the first part of work announced in
"[RFC] Adding lifetime analysis to clang" [0],
i.e. the addition of the [[gsl::Owner(T)]] and
[[gsl::Pointer(T)]] attributes, which
will enable user-defined types to participate in
the lifetime analysis (which will be part of the
next PR).
The type `T` here is called "DerefType" in the paper,
and denotes the type that an Owner owns and a Pointer
points to. E.g. `std::vector<int>` should be annotated
with `[[gsl::Owner(int)]]` and
a `std::vector<int>::iterator` with `[[gsl::Pointer(int)]]`.
We explicitly allow to add an annotation after
the definition of the class to allow adding annotations
to external source from by the user, e.g.
#include <vector>
namespace std {
template<typename T, typename Alloc>
class [[gsl::Owner(T)]] vector;
}
until we can ship a standard library with annotations.
[0] http://lists.llvm.org/pipermail/cfe-dev/2018-November/060355.html
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D63954
Files:
clang/include/clang/Basic/Attr.td
clang/include/clang/Basic/AttrDocs.td
clang/include/clang/Basic/DiagnosticSemaKinds.td
clang/lib/Parse/ParseDecl.cpp
clang/lib/Sema/SemaDecl.cpp
clang/lib/Sema/SemaDeclAttr.cpp
clang/test/AST/ast-dump-attr.cpp
clang/test/Misc/pragma-attribute-supported-attributes-list.test
clang/test/SemaCXX/attr-gsl-owner-pointer.cpp
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D63954.207134.patch
Type: text/x-patch
Size: 11347 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20190628/df205055/attachment-0001.bin>
More information about the cfe-commits
mailing list