diff options
author | Richard Smith <richard-llvm@metafoo.co.uk> | 2016-08-11 22:25:46 +0000 |
---|---|---|
committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2016-08-11 22:25:46 +0000 |
commit | 5f0128122c3803afe7f26919f3f898f981451f44 (patch) | |
tree | 70ee26fc97baab18f26b5a194690a2977ee8dce9 /include/clang/AST/DeclCXX.h | |
parent | e5174eea266bb5ec9e752f898a42ce3266400fd5 (diff) |
P0217R3: Perform semantic checks and initialization for the bindings in a
decomposition declaration for arrays, aggregate-like structs, tuple-like
types, and (as an extension) for complex and vector types.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@278435 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/clang/AST/DeclCXX.h')
-rw-r--r-- | include/clang/AST/DeclCXX.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/include/clang/AST/DeclCXX.h b/include/clang/AST/DeclCXX.h index 6a2fcddfd7..48ada29bb6 100644 --- a/include/clang/AST/DeclCXX.h +++ b/include/clang/AST/DeclCXX.h @@ -1147,6 +1147,12 @@ public: /// \note This does NOT include a check for union-ness. bool isEmpty() const { return data().Empty; } + /// \brief Determine whether this class has direct non-static data members. + bool hasDirectFields() const { + auto &D = data(); + return D.HasPublicFields || D.HasProtectedFields || D.HasPrivateFields; + } + /// Whether this class is polymorphic (C++ [class.virtual]), /// which means that the class contains or inherits a virtual function. bool isPolymorphic() const { return data().Polymorphic; } @@ -3451,6 +3457,8 @@ public: return llvm::makeArrayRef(getTrailingObjects<BindingDecl *>(), NumBindings); } + void printName(raw_ostream &os) const override; + static bool classof(const Decl *D) { return classofKind(D->getKind()); } static bool classofKind(Kind K) { return K == Decomposition; } |