This revision was landed with ongoing or failed builds. This revision was automatically updated to reflect the committed changes. Closed by commit rG95279d7670cd: [clang][lex] NFCI: Use DirectoryEntryRef in ModuleMap::inferFrameworkModule() (authored by jansvoboda11). Herald added a subscriber: ributzka.
Changed prior to commit: https://reviews.llvm.org/D127648?vs=436401&id=526777#toc Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D127648/new/ https://reviews.llvm.org/D127648 Files: clang/include/clang/Lex/ModuleMap.h clang/lib/Frontend/FrontendAction.cpp clang/lib/Lex/ModuleMap.cpp Index: clang/lib/Lex/ModuleMap.cpp =================================================================== --- clang/lib/Lex/ModuleMap.cpp +++ clang/lib/Lex/ModuleMap.cpp @@ -972,14 +972,14 @@ /*IsFramework=*/true)); } -Module *ModuleMap::inferFrameworkModule(const DirectoryEntry *FrameworkDir, +Module *ModuleMap::inferFrameworkModule(DirectoryEntryRef FrameworkDir, bool IsSystem, Module *Parent) { Attributes Attrs; Attrs.IsSystem = IsSystem; return inferFrameworkModule(FrameworkDir, Attrs, Parent); } -Module *ModuleMap::inferFrameworkModule(const DirectoryEntry *FrameworkDir, +Module *ModuleMap::inferFrameworkModule(DirectoryEntryRef FrameworkDir, Attributes Attrs, Module *Parent) { // Note: as an egregious but useful hack we use the real path here, because // we might be looking at an embedded framework that symlinks out to a @@ -1010,7 +1010,7 @@ if (llvm::sys::path::has_parent_path(FrameworkDirName)) { // Figure out the parent path. StringRef Parent = llvm::sys::path::parent_path(FrameworkDirName); - if (auto ParentDir = FileMgr.getDirectory(Parent)) { + if (auto ParentDir = FileMgr.getOptionalDirectoryRef(Parent)) { // Check whether we have already looked into the parent directory // for a module map. llvm::DenseMap<const DirectoryEntry *, InferredDirectory>::const_iterator @@ -1057,7 +1057,7 @@ } // Look for an umbrella header. - SmallString<128> UmbrellaName = StringRef(FrameworkDir->getName()); + SmallString<128> UmbrellaName = FrameworkDir.getName(); llvm::sys::path::append(UmbrellaName, "Headers", ModuleName + ".h"); auto UmbrellaHeader = FileMgr.getOptionalFileRef(UmbrellaName); @@ -1103,8 +1103,7 @@ // Look for subframeworks. std::error_code EC; - SmallString<128> SubframeworksDirName - = StringRef(FrameworkDir->getName()); + SmallString<128> SubframeworksDirName = FrameworkDir.getName(); llvm::sys::path::append(SubframeworksDirName, "Frameworks"); llvm::sys::path::native(SubframeworksDirName); llvm::vfs::FileSystem &FS = FileMgr.getVirtualFileSystem(); @@ -1115,8 +1114,7 @@ if (!StringRef(Dir->path()).endswith(".framework")) continue; - if (auto SubframeworkDir = - FileMgr.getDirectory(Dir->path())) { + if (auto SubframeworkDir = FileMgr.getOptionalDirectoryRef(Dir->path())) { // Note: as an egregious but useful hack, we use the real path here and // check whether it is actually a subdirectory of the parent directory. // This will not be the case if the 'subframework' is actually a symlink Index: clang/lib/Frontend/FrontendAction.cpp =================================================================== --- clang/lib/Frontend/FrontendAction.cpp +++ clang/lib/Frontend/FrontendAction.cpp @@ -473,7 +473,8 @@ SmallString<128> InferredFrameworkPath = ModuleMap->getDir().getName(); llvm::sys::path::append(InferredFrameworkPath, CI.getLangOpts().ModuleName + ".framework"); - if (auto Dir = CI.getFileManager().getDirectory(InferredFrameworkPath)) + if (auto Dir = + CI.getFileManager().getOptionalDirectoryRef(InferredFrameworkPath)) (void)HS.getModuleMap().inferFrameworkModule(*Dir, IsSystem, nullptr); } Index: clang/include/clang/Lex/ModuleMap.h =================================================================== --- clang/include/clang/Lex/ModuleMap.h +++ clang/include/clang/Lex/ModuleMap.h @@ -380,8 +380,8 @@ return static_cast<bool>(findHeaderInUmbrellaDirs(File, IntermediateDirs)); } - Module *inferFrameworkModule(const DirectoryEntry *FrameworkDir, - Attributes Attrs, Module *Parent); + Module *inferFrameworkModule(DirectoryEntryRef FrameworkDir, Attributes Attrs, + Module *Parent); public: /// Construct a new module map. @@ -591,8 +591,8 @@ /// Infer the contents of a framework module map from the given /// framework directory. - Module *inferFrameworkModule(const DirectoryEntry *FrameworkDir, - bool IsSystem, Module *Parent); + Module *inferFrameworkModule(DirectoryEntryRef FrameworkDir, bool IsSystem, + Module *Parent); /// Create a new top-level module that is shadowed by /// \p ShadowingModule.
Index: clang/lib/Lex/ModuleMap.cpp =================================================================== --- clang/lib/Lex/ModuleMap.cpp +++ clang/lib/Lex/ModuleMap.cpp @@ -972,14 +972,14 @@ /*IsFramework=*/true)); } -Module *ModuleMap::inferFrameworkModule(const DirectoryEntry *FrameworkDir, +Module *ModuleMap::inferFrameworkModule(DirectoryEntryRef FrameworkDir, bool IsSystem, Module *Parent) { Attributes Attrs; Attrs.IsSystem = IsSystem; return inferFrameworkModule(FrameworkDir, Attrs, Parent); } -Module *ModuleMap::inferFrameworkModule(const DirectoryEntry *FrameworkDir, +Module *ModuleMap::inferFrameworkModule(DirectoryEntryRef FrameworkDir, Attributes Attrs, Module *Parent) { // Note: as an egregious but useful hack we use the real path here, because // we might be looking at an embedded framework that symlinks out to a @@ -1010,7 +1010,7 @@ if (llvm::sys::path::has_parent_path(FrameworkDirName)) { // Figure out the parent path. StringRef Parent = llvm::sys::path::parent_path(FrameworkDirName); - if (auto ParentDir = FileMgr.getDirectory(Parent)) { + if (auto ParentDir = FileMgr.getOptionalDirectoryRef(Parent)) { // Check whether we have already looked into the parent directory // for a module map. llvm::DenseMap<const DirectoryEntry *, InferredDirectory>::const_iterator @@ -1057,7 +1057,7 @@ } // Look for an umbrella header. - SmallString<128> UmbrellaName = StringRef(FrameworkDir->getName()); + SmallString<128> UmbrellaName = FrameworkDir.getName(); llvm::sys::path::append(UmbrellaName, "Headers", ModuleName + ".h"); auto UmbrellaHeader = FileMgr.getOptionalFileRef(UmbrellaName); @@ -1103,8 +1103,7 @@ // Look for subframeworks. std::error_code EC; - SmallString<128> SubframeworksDirName - = StringRef(FrameworkDir->getName()); + SmallString<128> SubframeworksDirName = FrameworkDir.getName(); llvm::sys::path::append(SubframeworksDirName, "Frameworks"); llvm::sys::path::native(SubframeworksDirName); llvm::vfs::FileSystem &FS = FileMgr.getVirtualFileSystem(); @@ -1115,8 +1114,7 @@ if (!StringRef(Dir->path()).endswith(".framework")) continue; - if (auto SubframeworkDir = - FileMgr.getDirectory(Dir->path())) { + if (auto SubframeworkDir = FileMgr.getOptionalDirectoryRef(Dir->path())) { // Note: as an egregious but useful hack, we use the real path here and // check whether it is actually a subdirectory of the parent directory. // This will not be the case if the 'subframework' is actually a symlink Index: clang/lib/Frontend/FrontendAction.cpp =================================================================== --- clang/lib/Frontend/FrontendAction.cpp +++ clang/lib/Frontend/FrontendAction.cpp @@ -473,7 +473,8 @@ SmallString<128> InferredFrameworkPath = ModuleMap->getDir().getName(); llvm::sys::path::append(InferredFrameworkPath, CI.getLangOpts().ModuleName + ".framework"); - if (auto Dir = CI.getFileManager().getDirectory(InferredFrameworkPath)) + if (auto Dir = + CI.getFileManager().getOptionalDirectoryRef(InferredFrameworkPath)) (void)HS.getModuleMap().inferFrameworkModule(*Dir, IsSystem, nullptr); } Index: clang/include/clang/Lex/ModuleMap.h =================================================================== --- clang/include/clang/Lex/ModuleMap.h +++ clang/include/clang/Lex/ModuleMap.h @@ -380,8 +380,8 @@ return static_cast<bool>(findHeaderInUmbrellaDirs(File, IntermediateDirs)); } - Module *inferFrameworkModule(const DirectoryEntry *FrameworkDir, - Attributes Attrs, Module *Parent); + Module *inferFrameworkModule(DirectoryEntryRef FrameworkDir, Attributes Attrs, + Module *Parent); public: /// Construct a new module map. @@ -591,8 +591,8 @@ /// Infer the contents of a framework module map from the given /// framework directory. - Module *inferFrameworkModule(const DirectoryEntry *FrameworkDir, - bool IsSystem, Module *Parent); + Module *inferFrameworkModule(DirectoryEntryRef FrameworkDir, bool IsSystem, + Module *Parent); /// Create a new top-level module that is shadowed by /// \p ShadowingModule.
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits