diff options
author | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2010-06-28 09:31:56 +0000 |
---|---|---|
committer | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2010-06-28 09:31:56 +0000 |
commit | 12dffcddb60380c5bed4f085a1f51534afda3b87 (patch) | |
tree | fc7c2379c7f23770cb58b7da671f86d1f41839c9 /include | |
parent | 36c76f0bea0d3595a25a5362225c642019cc3176 (diff) |
Support DependentScopeDeclRefExpr for PCH.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106998 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r-- | include/clang/AST/ExprCXX.h | 12 | ||||
-rw-r--r-- | include/clang/Frontend/PCHBitCodes.h | 1 |
2 files changed, 13 insertions, 0 deletions
diff --git a/include/clang/AST/ExprCXX.h b/include/clang/AST/ExprCXX.h index 534ffa4e55..4305adbddc 100644 --- a/include/clang/AST/ExprCXX.h +++ b/include/clang/AST/ExprCXX.h @@ -1656,18 +1656,25 @@ public: SourceLocation NameLoc, const TemplateArgumentListInfo *TemplateArgs = 0); + static DependentScopeDeclRefExpr *CreateEmpty(ASTContext &C, + unsigned NumTemplateArgs); + /// \brief Retrieve the name that this expression refers to. DeclarationName getDeclName() const { return Name; } + void setDeclName(DeclarationName N) { Name = N; } /// \brief Retrieve the location of the name within the expression. SourceLocation getLocation() const { return Loc; } + void setLocation(SourceLocation L) { Loc = L; } /// \brief Retrieve the source range of the nested-name-specifier. SourceRange getQualifierRange() const { return QualifierRange; } + void setQualifierRange(SourceRange R) { QualifierRange = R; } /// \brief Retrieve the nested-name-specifier that qualifies this /// declaration. NestedNameSpecifier *getQualifier() const { return Qualifier; } + void setQualifier(NestedNameSpecifier *NNS) { Qualifier = NNS; } /// Determines whether this lookup had explicit template arguments. bool hasExplicitTemplateArgs() const { return HasExplicitTemplateArgs; } @@ -1676,6 +1683,11 @@ public: // nodes, users are *forbidden* from calling these methods on objects // without explicit template arguments. + ExplicitTemplateArgumentList &getExplicitTemplateArgs() { + assert(hasExplicitTemplateArgs()); + return *reinterpret_cast<ExplicitTemplateArgumentList*>(this + 1); + } + /// Gets a reference to the explicit template argument list. const ExplicitTemplateArgumentList &getExplicitTemplateArgs() const { assert(hasExplicitTemplateArgs()); diff --git a/include/clang/Frontend/PCHBitCodes.h b/include/clang/Frontend/PCHBitCodes.h index 0abe657475..31864183d3 100644 --- a/include/clang/Frontend/PCHBitCodes.h +++ b/include/clang/Frontend/PCHBitCodes.h @@ -772,6 +772,7 @@ namespace clang { EXPR_CXX_EXPR_WITH_TEMPORARIES, // CXXExprWithTemporaries EXPR_CXX_DEPENDENT_SCOPE_MEMBER, // CXXDependentScopeMemberExpr + EXPR_CXX_DEPENDENT_SCOPE_DECL_REF, // DependentScopeDeclRefExpr EXPR_CXX_UNRESOLVED_CONSTRUCT, // CXXUnresolvedConstructExpr EXPR_CXX_UNRESOLVED_MEMBER, // UnresolvedMemberExpr EXPR_CXX_UNRESOLVED_LOOKUP // UnresolvedLookupExpr |