aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/clang/Basic/SourceManager.h8
-rw-r--r--lib/Basic/SourceManager.cpp5
2 files changed, 4 insertions, 9 deletions
diff --git a/include/clang/Basic/SourceManager.h b/include/clang/Basic/SourceManager.h
index 270fba668e..41fa04183c 100644
--- a/include/clang/Basic/SourceManager.h
+++ b/include/clang/Basic/SourceManager.h
@@ -403,14 +403,6 @@ public:
return PLoc.getFileLocWithOffset(Loc.getMacroSpellingOffs());
}
- /// getContentCacheForLoc - Return the ContentCache for the spelling loc of
- /// the specified SourceLocation, if one exists.
- const SrcMgr::ContentCache* getContentCacheForLoc(SourceLocation Loc) const {
- Loc = getSpellingLoc(Loc);
- unsigned ChunkID = Loc.getChunkID();
- assert(ChunkID-1 < FileIDs.size() && "Invalid FileID!");
- return FileIDs[ChunkID-1].getContentCache();
- }
/// getFileEntryForID - Returns the FileEntry record for the provided FileID.
const FileEntry *getFileEntryForID(FileID FID) const {
diff --git a/lib/Basic/SourceManager.cpp b/lib/Basic/SourceManager.cpp
index 989c3ac1fd..35c350ebba 100644
--- a/lib/Basic/SourceManager.cpp
+++ b/lib/Basic/SourceManager.cpp
@@ -228,9 +228,12 @@ unsigned SourceManager::getColumnNumber(SourceLocation Loc) const {
const char *SourceManager::getSourceName(SourceLocation Loc) const {
if (Loc.getChunkID() == 0) return "";
+ Loc = getSpellingLoc(Loc);
+ unsigned ChunkID = Loc.getChunkID();
+ const SrcMgr::ContentCache *C = getFIDInfo(ChunkID)->getContentCache();
+
// To get the source name, first consult the FileEntry (if one exists) before
// the MemBuffer as this will avoid unnecessarily paging in the MemBuffer.
- const SrcMgr::ContentCache *C = getContentCacheForLoc(Loc);
return C->Entry ? C->Entry->getName() : C->getBuffer()->getBufferIdentifier();
}