diff options
Diffstat (limited to 'clang/lib/Serialization')
-rw-r--r-- | clang/lib/Serialization/ASTReaderStmt.cpp | 23 | ||||
-rw-r--r-- | clang/lib/Serialization/ASTWriterStmt.cpp | 13 |
2 files changed, 19 insertions, 17 deletions
diff --git a/clang/lib/Serialization/ASTReaderStmt.cpp b/clang/lib/Serialization/ASTReaderStmt.cpp index 216764f19eb..c7b49dee2ec 100644 --- a/clang/lib/Serialization/ASTReaderStmt.cpp +++ b/clang/lib/Serialization/ASTReaderStmt.cpp @@ -2447,17 +2447,18 @@ Stmt *ASTReader::ReadStmtFromStream(ModuleFile &F) { ExprObjectKind OK = static_cast<ExprObjectKind>(Record[Idx++]); Expr *Base = ReadSubExpr(); ValueDecl *MemberD = ReadDeclAs<ValueDecl>(F, Record, Idx); - SourceLocation MemberLoc = ReadSourceLocation(F, Record, Idx); - DeclarationNameInfo MemberNameInfo(MemberD->getDeclName(), MemberLoc); - bool IsArrow = Record[Idx++]; - - S = MemberExpr::Create(Context, Base, IsArrow, QualifierLoc, - TemplateKWLoc, MemberD, FoundDecl, MemberNameInfo, - HasTemplateKWAndArgsInfo ? &ArgInfo : nullptr, - T, VK, OK); - ReadDeclarationNameLoc(F, cast<MemberExpr>(S)->MemberDNLoc, - MemberD->getDeclName(), Record, Idx); - if (HadMultipleCandidates) + SourceLocation MemberLoc = ReadSourceLocation(F, Record, Idx);
+ DeclarationNameInfo MemberNameInfo(MemberD->getDeclName(), MemberLoc);
+ bool IsArrow = Record[Idx++];
+ SourceLocation OperatorLoc = ReadSourceLocation(F, Record, Idx);
+
+ S = MemberExpr::Create(Context, Base, IsArrow, OperatorLoc, QualifierLoc,
+ TemplateKWLoc, MemberD, FoundDecl, MemberNameInfo,
+ HasTemplateKWAndArgsInfo ? &ArgInfo : nullptr, T,
+ VK, OK);
+ ReadDeclarationNameLoc(F, cast<MemberExpr>(S)->MemberDNLoc,
+ MemberD->getDeclName(), Record, Idx);
+ if (HadMultipleCandidates)
cast<MemberExpr>(S)->setHadMultipleCandidates(true); break; } diff --git a/clang/lib/Serialization/ASTWriterStmt.cpp b/clang/lib/Serialization/ASTWriterStmt.cpp index cf0314a4b1b..6e647c31950 100644 --- a/clang/lib/Serialization/ASTWriterStmt.cpp +++ b/clang/lib/Serialization/ASTWriterStmt.cpp @@ -550,12 +550,13 @@ void ASTStmtWriter::VisitMemberExpr(MemberExpr *E) { Record.push_back(E->getValueKind()); Record.push_back(E->getObjectKind()); Writer.AddStmt(E->getBase()); - Writer.AddDeclRef(E->getMemberDecl(), Record); - Writer.AddSourceLocation(E->getMemberLoc(), Record); - Record.push_back(E->isArrow()); - Writer.AddDeclarationNameLoc(E->MemberDNLoc, - E->getMemberDecl()->getDeclName(), Record); - Code = serialization::EXPR_MEMBER; + Writer.AddDeclRef(E->getMemberDecl(), Record);
+ Writer.AddSourceLocation(E->getMemberLoc(), Record);
+ Record.push_back(E->isArrow());
+ Writer.AddSourceLocation(E->getOperatorLoc(), Record);
+ Writer.AddDeclarationNameLoc(E->MemberDNLoc,
+ E->getMemberDecl()->getDeclName(), Record);
+ Code = serialization::EXPR_MEMBER;
} void ASTStmtWriter::VisitObjCIsaExpr(ObjCIsaExpr *E) { |