diff options
author | Harlan Haskins <harlan@harlanhaskins.com> | 2019-08-01 21:32:01 +0000 |
---|---|---|
committer | Harlan Haskins <harlan@harlanhaskins.com> | 2019-08-01 21:32:01 +0000 |
commit | a02f85768d2d1a77c7735ddd43226e1be51f3730 (patch) | |
tree | 331b92c088cb3249848f387a358206770da95180 /clang-tools-extra/modularize/ModularizeUtilities.cpp | |
parent | 8d323d150610bed1feeb79d7a29c9958a4c8bcac (diff) | |
download | bcm5719-llvm-a02f85768d2d1a77c7735ddd43226e1be51f3730.tar.gz bcm5719-llvm-a02f85768d2d1a77c7735ddd43226e1be51f3730.zip |
[clang-tools-extra] Adopt FileManager's error-returning APIs
The FileManager has been updated to return llvm::ErrorOr from getFile
and getDirectory, this commit updates all the callers of those APIs from
clang.
llvm-svn: 367617
Diffstat (limited to 'clang-tools-extra/modularize/ModularizeUtilities.cpp')
-rw-r--r-- | clang-tools-extra/modularize/ModularizeUtilities.cpp | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/clang-tools-extra/modularize/ModularizeUtilities.cpp b/clang-tools-extra/modularize/ModularizeUtilities.cpp index c4e13abcc25..f11273dda75 100644 --- a/clang-tools-extra/modularize/ModularizeUtilities.cpp +++ b/clang-tools-extra/modularize/ModularizeUtilities.cpp @@ -258,14 +258,15 @@ std::error_code ModularizeUtilities::loadProblemHeaderList( std::error_code ModularizeUtilities::loadModuleMap( llvm::StringRef InputPath) { // Get file entry for module.modulemap file. - const FileEntry *ModuleMapEntry = + auto ModuleMapEntryOrErr = SourceMgr->getFileManager().getFile(InputPath); // return error if not found. - if (!ModuleMapEntry) { + if (!ModuleMapEntryOrErr) { llvm::errs() << "error: File \"" << InputPath << "\" not found.\n"; - return std::error_code(1, std::generic_category()); + return ModuleMapEntryOrErr.getError(); } + const FileEntry *ModuleMapEntry = *ModuleMapEntryOrErr; // Because the module map parser uses a ForwardingDiagnosticConsumer, // which doesn't forward the BeginSourceFile call, we do it explicitly here. @@ -276,8 +277,12 @@ std::error_code ModularizeUtilities::loadModuleMap( StringRef DirName(Dir->getName()); if (llvm::sys::path::filename(DirName) == "Modules") { DirName = llvm::sys::path::parent_path(DirName); - if (DirName.endswith(".framework")) - Dir = FileMgr->getDirectory(DirName); + if (DirName.endswith(".framework")) { + if (auto DirEntry = FileMgr->getDirectory(DirName)) + Dir = *DirEntry; + else + Dir = nullptr; + } // FIXME: This assert can fail if there's a race between the above check // and the removal of the directory. assert(Dir && "parent must exist"); |