forked from OSchip/llvm-project
SourceManager: getFileEntryRefForID => getNonBuiltinFilenameForID, NFC
`SourceManager::getFileEntryRefForID`'s remaining callers just want the filename component, which is coming from the `FileInfo`. Replace the API with `getNonBuiltinFilenameForID`, which also removes another use of `FileEntryRef::FileEntryRef` outside of `FileManager`. Both callers are collecting file dependencies, and one of them relied on this API to filter out built-ins (as exposed by clang/test/ClangScanDeps/modules-full.cpp). It seems nice to continue providing that service. Differential Revision: https://reviews.llvm.org/D89508
This commit is contained in:
parent
27e11d7120
commit
cf593d224c
|
@ -997,8 +997,11 @@ public:
|
|||
return nullptr;
|
||||
}
|
||||
|
||||
/// Returns the FileEntryRef for the provided FileID.
|
||||
Optional<FileEntryRef> getFileEntryRefForID(FileID FID) const;
|
||||
/// Returns the filename for the provided FileID, unless it's a built-in
|
||||
/// buffer that's not represented by a filename.
|
||||
///
|
||||
/// Returns None for non-files and built-in files.
|
||||
Optional<StringRef> getNonBuiltinFilenameForID(FileID FID) const;
|
||||
|
||||
/// Returns the FileEntry record for the provided SLocEntry.
|
||||
const FileEntry *getFileEntryForSLocEntry(const SrcMgr::SLocEntry &sloc) const
|
||||
|
|
|
@ -725,11 +725,12 @@ void SourceManager::setFileIsTransient(const FileEntry *File) {
|
|||
const_cast<SrcMgr::ContentCache *>(CC)->IsTransient = true;
|
||||
}
|
||||
|
||||
Optional<FileEntryRef> SourceManager::getFileEntryRefForID(FileID FID) const {
|
||||
Optional<StringRef>
|
||||
SourceManager::getNonBuiltinFilenameForID(FileID FID) const {
|
||||
if (const SrcMgr::SLocEntry *Entry = getSLocEntryForFile(FID))
|
||||
if (auto *Content = Entry->getFile().getContentCache())
|
||||
if (Content && Content->OrigEntry)
|
||||
return FileEntryRef(Entry->getFile().getName(), *Content->OrigEntry);
|
||||
return Entry->getFile().getName();
|
||||
return None;
|
||||
}
|
||||
|
||||
|
|
|
@ -46,17 +46,12 @@ struct DepCollectorPPCallbacks : public PPCallbacks {
|
|||
// Dependency generation really does want to go all the way to the
|
||||
// file entry for a source location to find out what is depended on.
|
||||
// We do not want #line markers to affect dependency generation!
|
||||
Optional<FileEntryRef> File =
|
||||
SM.getFileEntryRefForID(SM.getFileID(SM.getExpansionLoc(Loc)));
|
||||
if (!File)
|
||||
return;
|
||||
|
||||
StringRef Filename =
|
||||
llvm::sys::path::remove_leading_dotslash(File->getName());
|
||||
|
||||
DepCollector.maybeAddDependency(Filename, /*FromModule*/false,
|
||||
isSystem(FileType),
|
||||
/*IsModuleFile*/false, /*IsMissing*/false);
|
||||
if (Optional<StringRef> Filename = SM.getNonBuiltinFilenameForID(
|
||||
SM.getFileID(SM.getExpansionLoc(Loc))))
|
||||
DepCollector.maybeAddDependency(
|
||||
llvm::sys::path::remove_leading_dotslash(*Filename),
|
||||
/*FromModule*/ false, isSystem(FileType), /*IsModuleFile*/ false,
|
||||
/*IsMissing*/ false);
|
||||
}
|
||||
|
||||
void FileSkipped(const FileEntryRef &SkippedFile, const Token &FilenameTok,
|
||||
|
|
|
@ -77,15 +77,10 @@ void ModuleDepCollectorPP::FileChanged(SourceLocation Loc,
|
|||
// Dependency generation really does want to go all the way to the
|
||||
// file entry for a source location to find out what is depended on.
|
||||
// We do not want #line markers to affect dependency generation!
|
||||
Optional<FileEntryRef> File =
|
||||
SM.getFileEntryRefForID(SM.getFileID(SM.getExpansionLoc(Loc)));
|
||||
if (!File)
|
||||
return;
|
||||
|
||||
StringRef FileName =
|
||||
llvm::sys::path::remove_leading_dotslash(File->getName());
|
||||
|
||||
MDC.MainDeps.push_back(std::string(FileName));
|
||||
if (Optional<StringRef> Filename =
|
||||
SM.getNonBuiltinFilenameForID(SM.getFileID(SM.getExpansionLoc(Loc))))
|
||||
MDC.MainDeps.push_back(
|
||||
std::string(llvm::sys::path::remove_leading_dotslash(*Filename)));
|
||||
}
|
||||
|
||||
void ModuleDepCollectorPP::InclusionDirective(
|
||||
|
|
Loading…
Reference in New Issue