diff options
author | Mikhail Maltsev <mikhail.maltsev@arm.com> | 2020-10-19 18:30:51 +0100 |
---|---|---|
committer | Mikhail Maltsev <mikhail.maltsev@arm.com> | 2020-10-19 18:31:05 +0100 |
commit | a3c16039b3f119cd83d872f256c45599ae6ac60c (patch) | |
tree | ac12871e6c4e033fe750364594e2c3029b5492ea | |
parent | 3cbdae22b91b94d21c0ca348e5ceea7081c9887d (diff) | |
download | llvm-a3c16039b3f119cd83d872f256c45599ae6ac60c.zip llvm-a3c16039b3f119cd83d872f256c45599ae6ac60c.tar.gz llvm-a3c16039b3f119cd83d872f256c45599ae6ac60c.tar.bz2 |
[clang] Use SourceLocation as key in std::map, NFCI
SourceLocation implements `operator<`, so `SourceLocation`-s can be used
as keys in `std::map` directly, there is no need to extract the internal
representation.
Since the `operator<` simply compares the internal representations of
its operands, this patch does not introduce any functional changes.
Reviewed By: dexonsmith
Differential Revision: https://reviews.llvm.org/D89705
-rw-r--r-- | clang/lib/ARCMigrate/TransProperties.cpp | 15 | ||||
-rw-r--r-- | clang/lib/Frontend/Rewrite/InclusionRewriter.cpp | 31 |
2 files changed, 21 insertions, 25 deletions
diff --git a/clang/lib/ARCMigrate/TransProperties.cpp b/clang/lib/ARCMigrate/TransProperties.cpp index cba2256..db0e6ac 100644 --- a/clang/lib/ARCMigrate/TransProperties.cpp +++ b/clang/lib/ARCMigrate/TransProperties.cpp @@ -65,7 +65,7 @@ class PropertiesRewriter { }; typedef SmallVector<PropData, 2> PropsTy; - typedef std::map<unsigned, PropsTy> AtPropDeclsTy; + typedef std::map<SourceLocation, PropsTy> AtPropDeclsTy; AtPropDeclsTy AtProps; llvm::DenseMap<IdentifierInfo *, PropActionKind> ActionOnProp; @@ -76,13 +76,13 @@ public: static void collectProperties(ObjCContainerDecl *D, AtPropDeclsTy &AtProps, AtPropDeclsTy *PrevAtProps = nullptr) { for (auto *Prop : D->instance_properties()) { - if (Prop->getAtLoc().isInvalid()) + SourceLocation Loc = Prop->getAtLoc(); + if (Loc.isInvalid()) continue; - unsigned RawLoc = Prop->getAtLoc().getRawEncoding(); if (PrevAtProps) - if (PrevAtProps->find(RawLoc) != PrevAtProps->end()) + if (PrevAtProps->find(Loc) != PrevAtProps->end()) continue; - PropsTy &props = AtProps[RawLoc]; + PropsTy &props = AtProps[Loc]; props.push_back(Prop); } } @@ -113,8 +113,7 @@ public: ObjCIvarDecl *ivarD = implD->getPropertyIvarDecl(); if (!ivarD || ivarD->isInvalidDecl()) continue; - unsigned rawAtLoc = propD->getAtLoc().getRawEncoding(); - AtPropDeclsTy::iterator findAtLoc = AtProps.find(rawAtLoc); + AtPropDeclsTy::iterator findAtLoc = AtProps.find(propD->getAtLoc()); if (findAtLoc == AtProps.end()) continue; @@ -130,7 +129,7 @@ public: for (AtPropDeclsTy::iterator I = AtProps.begin(), E = AtProps.end(); I != E; ++I) { - SourceLocation atLoc = SourceLocation::getFromRawEncoding(I->first); + SourceLocation atLoc = I->first; PropsTy &props = I->second; if (!getPropertyType(props)->isObjCRetainableType()) continue; diff --git a/clang/lib/Frontend/Rewrite/InclusionRewriter.cpp b/clang/lib/Frontend/Rewrite/InclusionRewriter.cpp index dcf645f..4b5447c 100644 --- a/clang/lib/Frontend/Rewrite/InclusionRewriter.cpp +++ b/clang/lib/Frontend/Rewrite/InclusionRewriter.cpp @@ -44,13 +44,13 @@ class InclusionRewriter : public PPCallbacks { bool ShowLineMarkers; ///< Show #line markers. bool UseLineDirectives; ///< Use of line directives or line markers. /// Tracks where inclusions that change the file are found. - std::map<unsigned, IncludedFile> FileIncludes; + std::map<SourceLocation, IncludedFile> FileIncludes; /// Tracks where inclusions that import modules are found. - std::map<unsigned, const Module *> ModuleIncludes; + std::map<SourceLocation, const Module *> ModuleIncludes; /// Tracks where inclusions that enter modules (in a module build) are found. - std::map<unsigned, const Module *> ModuleEntryIncludes; + std::map<SourceLocation, const Module *> ModuleEntryIncludes; /// Tracks where #if and #elif directives get evaluated and whether to true. - std::map<unsigned, bool> IfConditions; + std::map<SourceLocation, bool> IfConditions; /// Used transitively for building up the FileIncludes mapping over the /// various \c PPCallbacks callbacks. SourceLocation LastInclusionLocation; @@ -65,8 +65,8 @@ public: void detectMainFileEOL(); void handleModuleBegin(Token &Tok) { assert(Tok.getKind() == tok::annot_module_begin); - ModuleEntryIncludes.insert({Tok.getLocation().getRawEncoding(), - (Module *)Tok.getAnnotationValue()}); + ModuleEntryIncludes.insert( + {Tok.getLocation(), (Module *)Tok.getAnnotationValue()}); } private: void FileChanged(SourceLocation Loc, FileChangeReason Reason, @@ -164,7 +164,7 @@ void InclusionRewriter::FileChanged(SourceLocation Loc, return; FileID Id = FullSourceLoc(Loc, SM).getFileID(); auto P = FileIncludes.insert( - std::make_pair(LastInclusionLocation.getRawEncoding(), + std::make_pair(LastInclusionLocation, IncludedFile(Id, NewFileType, PP.GetCurDirLookup()))); (void)P; assert(P.second && "Unexpected revisitation of the same include directive"); @@ -199,8 +199,7 @@ void InclusionRewriter::InclusionDirective(SourceLocation HashLoc, const Module *Imported, SrcMgr::CharacteristicKind FileType){ if (Imported) { - auto P = ModuleIncludes.insert( - std::make_pair(HashLoc.getRawEncoding(), Imported)); + auto P = ModuleIncludes.insert(std::make_pair(HashLoc, Imported)); (void)P; assert(P.second && "Unexpected revisitation of the same include directive"); } else @@ -209,8 +208,7 @@ void InclusionRewriter::InclusionDirective(SourceLocation HashLoc, void InclusionRewriter::If(SourceLocation Loc, SourceRange ConditionRange, ConditionValueKind ConditionValue) { - auto P = IfConditions.insert( - std::make_pair(Loc.getRawEncoding(), ConditionValue == CVK_True)); + auto P = IfConditions.insert(std::make_pair(Loc, ConditionValue == CVK_True)); (void)P; assert(P.second && "Unexpected revisitation of the same if directive"); } @@ -218,8 +216,7 @@ void InclusionRewriter::If(SourceLocation Loc, SourceRange ConditionRange, void InclusionRewriter::Elif(SourceLocation Loc, SourceRange ConditionRange, ConditionValueKind ConditionValue, SourceLocation IfLoc) { - auto P = IfConditions.insert( - std::make_pair(Loc.getRawEncoding(), ConditionValue == CVK_True)); + auto P = IfConditions.insert(std::make_pair(Loc, ConditionValue == CVK_True)); (void)P; assert(P.second && "Unexpected revisitation of the same elif directive"); } @@ -228,7 +225,7 @@ void InclusionRewriter::Elif(SourceLocation Loc, SourceRange ConditionRange, /// an inclusion directive) in the map of inclusion information, FileChanges. const InclusionRewriter::IncludedFile * InclusionRewriter::FindIncludeAtLocation(SourceLocation Loc) const { - const auto I = FileIncludes.find(Loc.getRawEncoding()); + const auto I = FileIncludes.find(Loc); if (I != FileIncludes.end()) return &I->second; return nullptr; @@ -238,7 +235,7 @@ InclusionRewriter::FindIncludeAtLocation(SourceLocation Loc) const { /// an inclusion directive) in the map of module inclusion information. const Module * InclusionRewriter::FindModuleAtLocation(SourceLocation Loc) const { - const auto I = ModuleIncludes.find(Loc.getRawEncoding()); + const auto I = ModuleIncludes.find(Loc); if (I != ModuleIncludes.end()) return I->second; return nullptr; @@ -248,14 +245,14 @@ InclusionRewriter::FindModuleAtLocation(SourceLocation Loc) const { /// an inclusion directive) in the map of module entry information. const Module * InclusionRewriter::FindEnteredModule(SourceLocation Loc) const { - const auto I = ModuleEntryIncludes.find(Loc.getRawEncoding()); + const auto I = ModuleEntryIncludes.find(Loc); if (I != ModuleEntryIncludes.end()) return I->second; return nullptr; } bool InclusionRewriter::IsIfAtLocationTrue(SourceLocation Loc) const { - const auto I = IfConditions.find(Loc.getRawEncoding()); + const auto I = IfConditions.find(Loc); if (I != IfConditions.end()) return I->second; return false; |