diff options
author | Aaron Ballman <aaron@aaronballman.com> | 2015-03-24 15:07:53 +0000 |
---|---|---|
committer | Aaron Ballman <aaron@aaronballman.com> | 2015-03-24 15:07:53 +0000 |
commit | f4cb2be05a51c6ee3aaf3939d729fe63bb81960f (patch) | |
tree | 702c257367a532ecfa454eaafea11497f8f8943f /clang/lib/AST/Expr.cpp | |
parent | 667ef229202b29c4a31e3693a815adf8729f4fd1 (diff) | |
download | bcm5719-llvm-f4cb2be05a51c6ee3aaf3939d729fe63bb81960f.tar.gz bcm5719-llvm-f4cb2be05a51c6ee3aaf3939d729fe63bb81960f.zip |
Track the source location of the dot or arrow operator in a MemberExpr.
Patch by Joe Ranieri!
llvm-svn: 233085
Diffstat (limited to 'clang/lib/AST/Expr.cpp')
-rw-r--r-- | clang/lib/AST/Expr.cpp | 20 |
1 files changed, 8 insertions, 12 deletions
diff --git a/clang/lib/AST/Expr.cpp b/clang/lib/AST/Expr.cpp index 8006d2be3c1..d13a11c4a33 100644 --- a/clang/lib/AST/Expr.cpp +++ b/clang/lib/AST/Expr.cpp @@ -1376,16 +1376,12 @@ UnaryExprOrTypeTraitExpr::UnaryExprOrTypeTraitExpr( } } -MemberExpr *MemberExpr::Create(const ASTContext &C, Expr *base, bool isarrow, - NestedNameSpecifierLoc QualifierLoc, - SourceLocation TemplateKWLoc, - ValueDecl *memberdecl, - DeclAccessPair founddecl, - DeclarationNameInfo nameinfo, - const TemplateArgumentListInfo *targs, - QualType ty, - ExprValueKind vk, - ExprObjectKind ok) { +MemberExpr *MemberExpr::Create( + const ASTContext &C, Expr *base, bool isarrow, SourceLocation OperatorLoc, + NestedNameSpecifierLoc QualifierLoc, SourceLocation TemplateKWLoc, + ValueDecl *memberdecl, DeclAccessPair founddecl, + DeclarationNameInfo nameinfo, const TemplateArgumentListInfo *targs, + QualType ty, ExprValueKind vk, ExprObjectKind ok) { std::size_t Size = sizeof(MemberExpr); bool hasQualOrFound = (QualifierLoc || @@ -1400,8 +1396,8 @@ MemberExpr *MemberExpr::Create(const ASTContext &C, Expr *base, bool isarrow, Size += ASTTemplateKWAndArgsInfo::sizeFor(0); void *Mem = C.Allocate(Size, llvm::alignOf<MemberExpr>()); - MemberExpr *E = new (Mem) MemberExpr(base, isarrow, memberdecl, nameinfo, - ty, vk, ok); + MemberExpr *E = new (Mem) + MemberExpr(base, isarrow, OperatorLoc, memberdecl, nameinfo, ty, vk, ok); if (hasQualOrFound) { // FIXME: Wrong. We should be looking at the member declaration we found. |