aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2009-08-31 20:00:26 +0000
committerDouglas Gregor <dgregor@apple.com>2009-08-31 20:00:26 +0000
commit017dde547d359a66ec38b80a098a5ddbef087048 (patch)
treed891ee8c3547aa6a70966cf06d3919a71feed122 /lib
parenta6f0f9d589a06737707fe914e06bd6d4bfae0997 (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.h16
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);