diff options
author | Douglas Gregor <dgregor@apple.com> | 2009-08-31 20:00:26 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2009-08-31 20:00:26 +0000 |
commit | 017dde547d359a66ec38b80a098a5ddbef087048 (patch) | |
tree | d891ee8c3547aa6a70966cf06d3919a71feed122 /lib | |
parent | a6f0f9d589a06737707fe914e06bd6d4bfae0997 (diff) |
Implement template instantiation for member operator access.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80609 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Sema/TreeTransform.h | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/lib/Sema/TreeTransform.h b/lib/Sema/TreeTransform.h index 8aabad575a..deb54115a5 100644 --- a/lib/Sema/TreeTransform.h +++ b/lib/Sema/TreeTransform.h @@ -837,10 +837,10 @@ public: OwningExprResult RebuildMemberExpr(ExprArg Base, SourceLocation OpLoc, bool isArrow, SourceLocation MemberLoc, NamedDecl *Member) { - return getSema().ActOnMemberReferenceExpr(/*Scope=*/0, move(Base), OpLoc, + return getSema().BuildMemberReferenceExpr(/*Scope=*/0, move(Base), OpLoc, isArrow? tok::arrow : tok::period, MemberLoc, - /*FIXME*/*Member->getIdentifier(), + Member->getDeclName(), /*FIXME?*/Sema::DeclPtrTy::make((Decl*)0)); } @@ -1435,10 +1435,10 @@ public: CXXScopeSpec SS; SS.setRange(QualifierRange); SS.setScopeRep(Qualifier); - return getSema().ActOnMemberReferenceExpr(/*Scope=*/0, move(Base), OpLoc, + return getSema().BuildMemberReferenceExpr(/*Scope=*/0, move(Base), OpLoc, isArrow? tok::arrow : tok::period, MemberLoc, - /*FIXME*/*Member->getIdentifier(), + Member->getDeclName(), /*FIXME?*/Sema::DeclPtrTy::make((Decl*)0), &SS); } @@ -1459,12 +1459,10 @@ public: if (Base.isInvalid()) return SemaRef.ExprError(); - assert(Name.getAsIdentifierInfo() && - "Cannot transform member references with non-identifier members"); - Base = SemaRef.ActOnMemberReferenceExpr(/*Scope=*/0, + Base = SemaRef.BuildMemberReferenceExpr(/*Scope=*/0, move(Base), OperatorLoc, OpKind, - MemberLoc, - *Name.getAsIdentifierInfo(), + MemberLoc, + Name, /*FIXME?*/Sema::DeclPtrTy::make((Decl*)0)); SemaRef.ActOnCXXExitMemberScope(0, SS); return move(Base); |