diff options
author | John McCall <rjmccall@apple.com> | 2010-02-02 06:20:04 +0000 |
---|---|---|
committer | John McCall <rjmccall@apple.com> | 2010-02-02 06:20:04 +0000 |
commit | 1acbbb5a4c6e646afc5753327dccee5cc9f90ebc (patch) | |
tree | 4eb9e508602dcf273ddff3853df7da8afa32ce11 /clang/lib/AST/ExprCXX.cpp | |
parent | c4c7db6b714169e505939ac0db73c02de5742a53 (diff) | |
download | bcm5719-llvm-1acbbb5a4c6e646afc5753327dccee5cc9f90ebc.tar.gz bcm5719-llvm-1acbbb5a4c6e646afc5753327dccee5cc9f90ebc.zip |
Extract a common base class between UnresolvedLookupExpr and
UnresolvedMemberExpr and employ it in a few places where it's useful.
llvm-svn: 95072
Diffstat (limited to 'clang/lib/AST/ExprCXX.cpp')
-rw-r--r-- | clang/lib/AST/ExprCXX.cpp | 25 |
1 files changed, 11 insertions, 14 deletions
diff --git a/clang/lib/AST/ExprCXX.cpp b/clang/lib/AST/ExprCXX.cpp index 70d08910239..7c68290551d 100644 --- a/clang/lib/AST/ExprCXX.cpp +++ b/clang/lib/AST/ExprCXX.cpp @@ -137,10 +137,9 @@ UnresolvedLookupExpr::Create(ASTContext &C, bool Dependent, return ULE; } -bool UnresolvedLookupExpr:: - ComputeDependence(UnresolvedSetImpl::const_iterator Begin, - UnresolvedSetImpl::const_iterator End, - const TemplateArgumentListInfo *Args) { +bool OverloadExpr::ComputeDependence(UnresolvedSetIterator Begin, + UnresolvedSetIterator End, + const TemplateArgumentListInfo *Args) { for (UnresolvedSetImpl::const_iterator I = Begin; I != End; ++I) if ((*I)->getDeclContext()->isDependentContext()) return true; @@ -646,15 +645,13 @@ UnresolvedMemberExpr::UnresolvedMemberExpr(QualType T, bool Dependent, DeclarationName MemberName, SourceLocation MemberLoc, const TemplateArgumentListInfo *TemplateArgs) - : Expr(UnresolvedMemberExprClass, T, Dependent, Dependent), - Base(Base), BaseType(BaseType), IsArrow(IsArrow), - HasUnresolvedUsing(HasUnresolvedUsing), - HasExplicitTemplateArgs(TemplateArgs != 0), - OperatorLoc(OperatorLoc), - Qualifier(Qualifier), QualifierRange(QualifierRange), - MemberName(MemberName), MemberLoc(MemberLoc) { + : OverloadExpr(UnresolvedMemberExprClass, T, Dependent, + Qualifier, QualifierRange, MemberName, MemberLoc, + TemplateArgs != 0), + IsArrow(IsArrow), HasUnresolvedUsing(HasUnresolvedUsing), + Base(Base), BaseType(BaseType), OperatorLoc(OperatorLoc) { if (TemplateArgs) - getExplicitTemplateArgs()->initializeFrom(*TemplateArgs); + getExplicitTemplateArgs().initializeFrom(*TemplateArgs); } UnresolvedMemberExpr * @@ -686,8 +683,8 @@ CXXRecordDecl *UnresolvedMemberExpr::getNamingClass() const { // It can't be dependent: after all, we were actually able to do the // lookup. const RecordType *RT; - if (Qualifier) { - Type *T = Qualifier->getAsType(); + if (getQualifier()) { + Type *T = getQualifier()->getAsType(); assert(T && "qualifier in member expression does not name type"); RT = T->getAs<RecordType>(); assert(RT && "qualifier in member expression does not name record"); |