summaryrefslogtreecommitdiffstats
path: root/clang-tools-extra/modularize/ModularizeUtilities.cpp
diff options
context:
space:
mode:
authorHarlan Haskins <harlan@harlanhaskins.com>2019-08-01 21:32:01 +0000
committerHarlan Haskins <harlan@harlanhaskins.com>2019-08-01 21:32:01 +0000
commita02f85768d2d1a77c7735ddd43226e1be51f3730 (patch)
tree331b92c088cb3249848f387a358206770da95180 /clang-tools-extra/modularize/ModularizeUtilities.cpp
parent8d323d150610bed1feeb79d7a29c9958a4c8bcac (diff)
downloadbcm5719-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.cpp15
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");
OpenPOWER on IntegriCloud