mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-26 21:16:05 +00:00
[clang][modules] Use FileEntryRef
in ModuleMap
(1/2)
This commit is contained in:
parent
7ac330a461
commit
12cb98fe04
@ -677,7 +677,7 @@ public:
|
||||
/// Like \ref findAllModulesForHeader, but do not attempt to infer module
|
||||
/// ownership from umbrella headers if we've not already done so.
|
||||
ArrayRef<ModuleMap::KnownHeader>
|
||||
findResolvedModulesForHeader(const FileEntry *File) const;
|
||||
findResolvedModulesForHeader(FileEntryRef File) const;
|
||||
|
||||
/// Read the contents of the given module map file.
|
||||
///
|
||||
|
@ -199,8 +199,7 @@ public:
|
||||
private:
|
||||
friend class ModuleMapParser;
|
||||
|
||||
using HeadersMap =
|
||||
llvm::DenseMap<const FileEntry *, SmallVector<KnownHeader, 1>>;
|
||||
using HeadersMap = llvm::DenseMap<FileEntryRef, SmallVector<KnownHeader, 1>>;
|
||||
|
||||
/// Mapping from each header to the module that owns the contents of
|
||||
/// that header.
|
||||
@ -357,7 +356,7 @@ private:
|
||||
/// If \p File represents a builtin header within Clang's builtin include
|
||||
/// directory, this also loads all of the module maps to see if it will get
|
||||
/// associated with a specific module (e.g. in /usr/include).
|
||||
HeadersMap::iterator findKnownHeader(const FileEntry *File);
|
||||
HeadersMap::iterator findKnownHeader(FileEntryRef File);
|
||||
|
||||
/// Searches for a module whose umbrella directory contains \p File.
|
||||
///
|
||||
@ -451,8 +450,7 @@ public:
|
||||
|
||||
/// Like \ref findAllModulesForHeader, but do not attempt to infer module
|
||||
/// ownership from umbrella headers if we've not already done so.
|
||||
ArrayRef<KnownHeader>
|
||||
findResolvedModulesForHeader(const FileEntry *File) const;
|
||||
ArrayRef<KnownHeader> findResolvedModulesForHeader(FileEntryRef File) const;
|
||||
|
||||
/// Resolve all lazy header directives for the specified file.
|
||||
///
|
||||
|
@ -1576,7 +1576,7 @@ HeaderSearch::findAllModulesForHeader(FileEntryRef File) const {
|
||||
}
|
||||
|
||||
ArrayRef<ModuleMap::KnownHeader>
|
||||
HeaderSearch::findResolvedModulesForHeader(const FileEntry *File) const {
|
||||
HeaderSearch::findResolvedModulesForHeader(FileEntryRef File) const {
|
||||
if (ExternalSource) {
|
||||
// Make sure the external source has handled header info about this file,
|
||||
// which includes whether the file is part of a module.
|
||||
|
@ -417,8 +417,7 @@ bool ModuleMap::isBuiltinHeader(const FileEntry *File) {
|
||||
isBuiltinHeaderName(llvm::sys::path::filename(File->getName()));
|
||||
}
|
||||
|
||||
ModuleMap::HeadersMap::iterator
|
||||
ModuleMap::findKnownHeader(const FileEntry *File) {
|
||||
ModuleMap::HeadersMap::iterator ModuleMap::findKnownHeader(FileEntryRef File) {
|
||||
resolveHeaderDirectives(File);
|
||||
HeadersMap::iterator Known = Headers.find(File);
|
||||
if (HeaderInfo.getHeaderSearchOpts().ImplicitModuleMaps &&
|
||||
@ -711,7 +710,7 @@ ModuleMap::findAllModulesForHeader(FileEntryRef File) {
|
||||
}
|
||||
|
||||
ArrayRef<ModuleMap::KnownHeader>
|
||||
ModuleMap::findResolvedModulesForHeader(const FileEntry *File) const {
|
||||
ModuleMap::findResolvedModulesForHeader(FileEntryRef File) const {
|
||||
// FIXME: Is this necessary?
|
||||
resolveHeaderDirectives(File);
|
||||
auto It = Headers.find(File);
|
||||
@ -927,9 +926,9 @@ Module *ModuleMap::createModuleForInterfaceUnit(SourceLocation Loc,
|
||||
|
||||
// Mark the main source file as being within the newly-created module so that
|
||||
// declarations and macros are properly visibility-restricted to it.
|
||||
auto *MainFile = SourceMgr.getFileEntryForID(SourceMgr.getMainFileID());
|
||||
auto MainFile = SourceMgr.getFileEntryRefForID(SourceMgr.getMainFileID());
|
||||
assert(MainFile && "no input file for module interface");
|
||||
Headers[MainFile].push_back(KnownHeader(Result, PrivateHeader));
|
||||
Headers[*MainFile].push_back(KnownHeader(Result, PrivateHeader));
|
||||
|
||||
return Result;
|
||||
}
|
||||
@ -1373,7 +1372,7 @@ LLVM_DUMP_METHOD void ModuleMap::dump() {
|
||||
llvm::errs() << "Headers:";
|
||||
for (HeadersMap::iterator H = Headers.begin(), HEnd = Headers.end();
|
||||
H != HEnd; ++H) {
|
||||
llvm::errs() << " \"" << H->first->getName() << "\" -> ";
|
||||
llvm::errs() << " \"" << H->first.getName() << "\" -> ";
|
||||
for (SmallVectorImpl<KnownHeader>::const_iterator I = H->second.begin(),
|
||||
E = H->second.end();
|
||||
I != E; ++I) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user