diff options
author | John McCall <rjmccall@apple.com> | 2010-08-31 22:21:26 +0000 |
---|---|---|
committer | John McCall <rjmccall@apple.com> | 2010-08-31 22:21:26 +0000 |
commit | 13fda8afe2ddd06c12bfb93a054e6b0d6d0d99f1 (patch) | |
tree | 9c1a530ad228a31d0beb7c9fc81e1d20bb732014 | |
parent | 49f6f5489483beaffc7ce48dfc000af4e65b9216 (diff) |
Add convenience accessors for determining whether template declarations are definitions.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112656 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | include/clang/AST/Decl.h | 6 | ||||
-rw-r--r-- | include/clang/AST/DeclTemplate.h | 12 |
2 files changed, 18 insertions, 0 deletions
diff --git a/include/clang/AST/Decl.h b/include/clang/AST/Decl.h index 4fdcf68151..7fb6978d25 100644 --- a/include/clang/AST/Decl.h +++ b/include/clang/AST/Decl.h @@ -1886,6 +1886,12 @@ public: return const_cast<TagDecl*>(this)->getCanonicalDecl(); } + /// isThisDeclarationADefinition() - Return true if this declaration + /// defines the type. Provided for consistency. + bool isThisDeclarationADefinition() const { + return isDefinition(); + } + /// isDefinition - Return true if this decl has its body specified. bool isDefinition() const { return IsDefinition; diff --git a/include/clang/AST/DeclTemplate.h b/include/clang/AST/DeclTemplate.h index 76d474a8cd..482f73423e 100644 --- a/include/clang/AST/DeclTemplate.h +++ b/include/clang/AST/DeclTemplate.h @@ -815,6 +815,12 @@ public: return static_cast<FunctionDecl*>(TemplatedDecl); } + /// Returns whether this template declaration defines the primary + /// pattern. + bool isThisDeclarationADefinition() const { + return getTemplatedDecl()->isThisDeclarationADefinition(); + } + /// \brief Return the specialization with the provided arguments if it exists, /// otherwise return the insertion point. FunctionDecl *findSpecialization(const TemplateArgument *Args, @@ -1664,6 +1670,12 @@ public: return static_cast<CXXRecordDecl *>(TemplatedDecl); } + /// Returns whether this template declaration defines the primary + /// class pattern. + bool isThisDeclarationADefinition() const { + return getTemplatedDecl()->isThisDeclarationADefinition(); + } + /// Create a class template node. static ClassTemplateDecl *Create(ASTContext &C, DeclContext *DC, SourceLocation L, |