Author: Jan Svoboda Date: 2023-09-09T09:12:35-07:00 New Revision: c23d65b90fb7fb07cb12e2d70d0c34376b8fcdad
URL: https://github.com/llvm/llvm-project/commit/c23d65b90fb7fb07cb12e2d70d0c34376b8fcdad DIFF: https://github.com/llvm/llvm-project/commit/c23d65b90fb7fb07cb12e2d70d0c34376b8fcdad.diff LOG: [clang] NFCI: Use `FileEntryRef` in `ModuleMapParser` Added: Modified: clang/include/clang/Lex/ModuleMap.h clang/lib/Lex/HeaderSearch.cpp clang/lib/Lex/ModuleMap.cpp Removed: ################################################################################ diff --git a/clang/include/clang/Lex/ModuleMap.h b/clang/include/clang/Lex/ModuleMap.h index 8f3f234036d26c0..05f30dd2eaa373f 100644 --- a/clang/include/clang/Lex/ModuleMap.h +++ b/clang/include/clang/Lex/ModuleMap.h @@ -721,7 +721,7 @@ class ModuleMap { /// that caused us to load this module map file, if any. /// /// \returns true if an error occurred, false otherwise. - bool parseModuleMapFile(const FileEntry *File, bool IsSystem, + bool parseModuleMapFile(FileEntryRef File, bool IsSystem, DirectoryEntryRef HomeDir, FileID ID = FileID(), unsigned *Offset = nullptr, SourceLocation ExternModuleLoc = SourceLocation()); diff --git a/clang/lib/Lex/HeaderSearch.cpp b/clang/lib/Lex/HeaderSearch.cpp index ec7cb583b6f810c..699cd9ae03adc51 100644 --- a/clang/lib/Lex/HeaderSearch.cpp +++ b/clang/lib/Lex/HeaderSearch.cpp @@ -1660,8 +1660,8 @@ bool HeaderSearch::findUsableModuleForFrameworkHeader( return true; } -static const FileEntry *getPrivateModuleMap(FileEntryRef File, - FileManager &FileMgr) { +static OptionalFileEntryRef getPrivateModuleMap(FileEntryRef File, + FileManager &FileMgr) { StringRef Filename = llvm::sys::path::filename(File.getName()); SmallString<128> PrivateFilename(File.getDir().getName()); if (Filename == "module.map") @@ -1669,10 +1669,8 @@ static const FileEntry *getPrivateModuleMap(FileEntryRef File, else if (Filename == "module.modulemap") llvm::sys::path::append(PrivateFilename, "module.private.modulemap"); else - return nullptr; - if (auto File = FileMgr.getFile(PrivateFilename)) - return *File; - return nullptr; + return std::nullopt; + return FileMgr.getOptionalFileRef(PrivateFilename); } bool HeaderSearch::loadModuleMapFile(FileEntryRef File, bool IsSystem, @@ -1738,8 +1736,8 @@ HeaderSearch::loadModuleMapFileImpl(FileEntryRef File, bool IsSystem, } // Try to load a corresponding private module map. - if (const FileEntry *PMMFile = getPrivateModuleMap(File, FileMgr)) { - if (ModMap.parseModuleMapFile(PMMFile, IsSystem, Dir)) { + if (OptionalFileEntryRef PMMFile = getPrivateModuleMap(File, FileMgr)) { + if (ModMap.parseModuleMapFile(*PMMFile, IsSystem, Dir)) { LoadedModuleMaps[File] = false; return LMM_InvalidModuleMap; } diff --git a/clang/lib/Lex/ModuleMap.cpp b/clang/lib/Lex/ModuleMap.cpp index f8b767e1b5eb804..7a759a2039d158c 100644 --- a/clang/lib/Lex/ModuleMap.cpp +++ b/clang/lib/Lex/ModuleMap.cpp @@ -1490,7 +1490,7 @@ namespace clang { ModuleMap ⤅ /// The current module map file. - const FileEntry *ModuleMapFile; + FileEntryRef ModuleMapFile; /// Source location of most recent parsed module declaration SourceLocation CurrModuleDeclLoc; @@ -1562,7 +1562,7 @@ namespace clang { public: explicit ModuleMapParser(Lexer &L, SourceManager &SourceMgr, const TargetInfo *Target, DiagnosticsEngine &Diags, - ModuleMap &Map, const FileEntry *ModuleMapFile, + ModuleMap &Map, FileEntryRef ModuleMapFile, DirectoryEntryRef Directory, bool IsSystem) : L(L), SourceMgr(SourceMgr), Target(Target), Diags(Diags), Map(Map), ModuleMapFile(ModuleMapFile), Directory(Directory), @@ -2095,7 +2095,7 @@ void ModuleMapParser::parseModuleDecl() { ActiveModule->NoUndeclaredIncludes = true; ActiveModule->Directory = Directory; - StringRef MapFileName(ModuleMapFile->getName()); + StringRef MapFileName(ModuleMapFile.getName()); if (MapFileName.endswith("module.private.modulemap") || MapFileName.endswith("module_private.map")) { ActiveModule->ModuleMapIsPrivate = true; @@ -3077,7 +3077,7 @@ bool ModuleMapParser::parseModuleMapFile() { } while (true); } -bool ModuleMap::parseModuleMapFile(const FileEntry *File, bool IsSystem, +bool ModuleMap::parseModuleMapFile(FileEntryRef File, bool IsSystem, DirectoryEntryRef Dir, FileID ID, unsigned *Offset, SourceLocation ExternModuleLoc) { _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits