summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/SemaExpr.cpp
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2009-08-31 23:41:50 +0000
committerDouglas Gregor <dgregor@apple.com>2009-08-31 23:41:50 +0000
commitf405d7e6f11ccbb5d69d180e3707740ab8728ade (patch)
tree72330fe0f0a1f2caae86b4a4cc543b1dc5eef99e /clang/lib/Sema/SemaExpr.cpp
parentb2de5fa6891b3c1f751b26bd8d0bea978a274d54 (diff)
downloadbcm5719-llvm-f405d7e6f11ccbb5d69d180e3707740ab8728ade.tar.gz
bcm5719-llvm-f405d7e6f11ccbb5d69d180e3707740ab8728ade.zip
Eliminate CXXAdornedMemberExpr entirely. Instead, optionally allocate
space within the MemberExpr for the nested-name-specifier and its source range. We'll do the same thing with explicitly-specified template arguments, assuming I don't flip-flop again. llvm-svn: 80642
Diffstat (limited to 'clang/lib/Sema/SemaExpr.cpp')
-rw-r--r--clang/lib/Sema/SemaExpr.cpp10
1 files changed, 4 insertions, 6 deletions
diff --git a/clang/lib/Sema/SemaExpr.cpp b/clang/lib/Sema/SemaExpr.cpp
index 7f680f5d2f4..df94f20af7d 100644
--- a/clang/lib/Sema/SemaExpr.cpp
+++ b/clang/lib/Sema/SemaExpr.cpp
@@ -878,15 +878,14 @@ Sema::PerformObjectMemberConversion(Expr *&From, NamedDecl *Member) {
return false;
}
-/// \brief Build a MemberExpr or CXXAdornedMemberExpr, as appropriate.
+/// \brief Build a MemberExpr AST node.
static MemberExpr *BuildMemberExpr(ASTContext &C, Expr *Base, bool isArrow,
const CXXScopeSpec *SS, NamedDecl *Member,
SourceLocation Loc, QualType Ty) {
if (SS && SS->isSet())
- return new (C) CXXAdornedMemberExpr(Base, isArrow,
- (NestedNameSpecifier *)SS->getScopeRep(),
- SS->getRange(),
- Member, Loc, Ty);
+ return MemberExpr::Create(C, Base, isArrow,
+ (NestedNameSpecifier *)SS->getScopeRep(),
+ SS->getRange(), Member, Loc, Ty);
return new (C) MemberExpr(Base, isArrow, Member, Loc, Ty);
}
@@ -4837,7 +4836,6 @@ static NamedDecl *getPrimaryDecl(Expr *E) {
case Stmt::QualifiedDeclRefExprClass:
return cast<DeclRefExpr>(E)->getDecl();
case Stmt::MemberExprClass:
- case Stmt::CXXAdornedMemberExprClass:
// If this is an arrow operator, the address is an offset from
// the base's value, so the object the base refers to is
// irrelevant.
OpenPOWER on IntegriCloud