Author: Nick Desaulniers Date: 2020-06-26T10:22:26-07:00 New Revision: 8cce7af090bd011f6371dec34dfcab494cc74c46
URL: https://github.com/llvm/llvm-project/commit/8cce7af090bd011f6371dec34dfcab494cc74c46 DIFF: https://github.com/llvm/llvm-project/commit/8cce7af090bd011f6371dec34dfcab494cc74c46.diff LOG: [SourceManager] don't check invalid param of getLocalSLocEntry() Forked from D80681. getLocalSLocEntry() has an unused parameter used to satisfy an interface of libclang (see getInclusions() in clang/tools/libclang/CIndexInclusionStack.cpp). It's pointless for callers to construct/pass/check this inout parameter that can never signify that a FileID is invalid. Reviewed By: kadircet Differential Revision: https://reviews.llvm.org/D82498 Added: Modified: clang/include/clang/Basic/SourceManager.h clang/lib/Basic/SourceManager.cpp Removed: ################################################################################ diff --git a/clang/include/clang/Basic/SourceManager.h b/clang/include/clang/Basic/SourceManager.h index 693ae4f938e1..5c666c1760b4 100644 --- a/clang/include/clang/Basic/SourceManager.h +++ b/clang/include/clang/Basic/SourceManager.h @@ -1645,8 +1645,7 @@ class SourceManager : public RefCountedBase<SourceManager> { unsigned local_sloc_entry_size() const { return LocalSLocEntryTable.size(); } /// Get a local SLocEntry. This is exposed for indexing. - const SrcMgr::SLocEntry &getLocalSLocEntry(unsigned Index, - bool *Invalid = nullptr) const { + const SrcMgr::SLocEntry &getLocalSLocEntry(unsigned Index) const { assert(Index < LocalSLocEntryTable.size() && "Invalid index"); return LocalSLocEntryTable[Index]; } @@ -1739,12 +1738,13 @@ class SourceManager : public RefCountedBase<SourceManager> { const SrcMgr::SLocEntry &loadSLocEntry(unsigned Index, bool *Invalid) const; /// Get the entry with the given unwrapped FileID. + /// Invalid will not be modified for Local IDs. const SrcMgr::SLocEntry &getSLocEntryByID(int ID, bool *Invalid = nullptr) const { assert(ID != -1 && "Using FileID sentinel value"); if (ID < 0) return getLoadedSLocEntryByID(ID, Invalid); - return getLocalSLocEntry(static_cast<unsigned>(ID), Invalid); + return getLocalSLocEntry(static_cast<unsigned>(ID)); } const SrcMgr::SLocEntry & diff --git a/clang/lib/Basic/SourceManager.cpp b/clang/lib/Basic/SourceManager.cpp index 63518bf8b79a..425bef717574 100644 --- a/clang/lib/Basic/SourceManager.cpp +++ b/clang/lib/Basic/SourceManager.cpp @@ -882,11 +882,8 @@ FileID SourceManager::getFileIDLocal(unsigned SLocOffset) const { unsigned LessIndex = 0; NumProbes = 0; while (true) { - bool Invalid = false; unsigned MiddleIndex = (GreaterIndex-LessIndex)/2+LessIndex; - unsigned MidOffset = getLocalSLocEntry(MiddleIndex, &Invalid).getOffset(); - if (Invalid) - return FileID::get(0); + unsigned MidOffset = getLocalSLocEntry(MiddleIndex).getOffset(); ++NumProbes; @@ -1694,11 +1691,7 @@ FileID SourceManager::translateFile(const FileEntry *SourceFile) const { // The location we're looking for isn't in the main file; look // through all of the local source locations. for (unsigned I = 0, N = local_sloc_entry_size(); I != N; ++I) { - bool Invalid = false; - const SLocEntry &SLoc = getLocalSLocEntry(I, &Invalid); - if (Invalid) - return FileID(); - + const SLocEntry &SLoc = getLocalSLocEntry(I); if (SLoc.isFile() && SLoc.getFile().getContentCache() && SLoc.getFile().getContentCache()->OrigEntry == SourceFile) return FileID::get(I); _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits