diff options
Diffstat (limited to 'clang/lib')
-rw-r--r-- | clang/lib/Basic/FileManager.cpp | 11 | ||||
-rw-r--r-- | clang/lib/Frontend/CompilerInstance.cpp | 2 | ||||
-rw-r--r-- | clang/lib/Lex/HeaderMap.cpp | 4 | ||||
-rw-r--r-- | clang/lib/Lex/HeaderSearch.cpp | 18 |
4 files changed, 17 insertions, 18 deletions
diff --git a/clang/lib/Basic/FileManager.cpp b/clang/lib/Basic/FileManager.cpp index 649e4d2..8e18671 100644 --- a/clang/lib/Basic/FileManager.cpp +++ b/clang/lib/Basic/FileManager.cpp @@ -187,10 +187,10 @@ FileManager::getFile(StringRef Filename, bool openFile, bool CacheFailure) { auto Result = getFileRef(Filename, openFile, CacheFailure); if (Result) return &Result->getFileEntry(); - return Result.getError(); + return llvm::errorToErrorCode(Result.takeError()); } -llvm::ErrorOr<FileEntryRef> +llvm::Expected<FileEntryRef> FileManager::getFileRef(StringRef Filename, bool openFile, bool CacheFailure) { ++NumFileLookups; @@ -199,7 +199,8 @@ FileManager::getFileRef(StringRef Filename, bool openFile, bool CacheFailure) { SeenFileEntries.insert({Filename, std::errc::no_such_file_or_directory}); if (!SeenFileInsertResult.second) { if (!SeenFileInsertResult.first->second) - return SeenFileInsertResult.first->second.getError(); + return llvm::errorCodeToError( + SeenFileInsertResult.first->second.getError()); // Construct and return and FileEntryRef, unless it's a redirect to another // filename. SeenFileEntryOrRedirect Value = *SeenFileInsertResult.first->second; @@ -230,7 +231,7 @@ FileManager::getFileRef(StringRef Filename, bool openFile, bool CacheFailure) { else SeenFileEntries.erase(Filename); - return DirInfoOrErr.getError(); + return llvm::errorCodeToError(DirInfoOrErr.getError()); } const DirectoryEntry *DirInfo = *DirInfoOrErr; @@ -249,7 +250,7 @@ FileManager::getFileRef(StringRef Filename, bool openFile, bool CacheFailure) { else SeenFileEntries.erase(Filename); - return statError; + return llvm::errorCodeToError(statError); } assert((openFile || !F) && "undesired open file"); diff --git a/clang/lib/Frontend/CompilerInstance.cpp b/clang/lib/Frontend/CompilerInstance.cpp index f0227d0..a7b7114 100644 --- a/clang/lib/Frontend/CompilerInstance.cpp +++ b/clang/lib/Frontend/CompilerInstance.cpp @@ -833,6 +833,8 @@ bool CompilerInstance::InitializeSourceManager( if (InputFile != "-") { auto FileOrErr = FileMgr.getFileRef(InputFile, /*OpenFile=*/true); if (!FileOrErr) { + // FIXME: include the error in the diagnostic. + consumeError(FileOrErr.takeError()); Diags.Report(diag::err_fe_error_reading) << InputFile; return false; } diff --git a/clang/lib/Lex/HeaderMap.cpp b/clang/lib/Lex/HeaderMap.cpp index 1c7fb1a..d44ef29c 100644 --- a/clang/lib/Lex/HeaderMap.cpp +++ b/clang/lib/Lex/HeaderMap.cpp @@ -204,9 +204,7 @@ Optional<FileEntryRef> HeaderMap::LookupFile(StringRef Filename, if (Dest.empty()) return None; - if (auto File = FM.getFileRef(Dest)) - return *File; - return None; + return FM.getOptionalFileRef(Dest); } StringRef HeaderMapImpl::lookupFilename(StringRef Filename, diff --git a/clang/lib/Lex/HeaderSearch.cpp b/clang/lib/Lex/HeaderSearch.cpp index 84af65c..0160677 100644 --- a/clang/lib/Lex/HeaderSearch.cpp +++ b/clang/lib/Lex/HeaderSearch.cpp @@ -314,7 +314,7 @@ Optional<FileEntryRef> HeaderSearch::getFileAndSuggestModule( if (!File) { // For rare, surprising errors (e.g. "out of file handles"), diag the EC // message. - std::error_code EC = File.getError(); + std::error_code EC = llvm::errorToErrorCode(File.takeError()); if (EC != llvm::errc::no_such_file_or_directory && EC != llvm::errc::invalid_argument && EC != llvm::errc::is_a_directory && EC != llvm::errc::not_a_directory) { @@ -401,7 +401,7 @@ Optional<FileEntryRef> DirectoryLookup::LookupFile( FixupSearchPath(); return *Result; } - } else if (auto Res = HS.getFileMgr().getFileRef(Dest)) { + } else if (auto Res = HS.getFileMgr().getOptionalFileRef(Dest)) { FixupSearchPath(); return *Res; } @@ -553,9 +553,8 @@ Optional<FileEntryRef> DirectoryLookup::DoFrameworkLookup( FrameworkName.append(Filename.begin()+SlashPos+1, Filename.end()); - llvm::ErrorOr<FileEntryRef> File = - FileMgr.getFileRef(FrameworkName, /*OpenFile=*/!SuggestedModule); - + auto File = + FileMgr.getOptionalFileRef(FrameworkName, /*OpenFile=*/!SuggestedModule); if (!File) { // Check "/System/Library/Frameworks/Cocoa.framework/PrivateHeaders/file.h" const char *Private = "Private"; @@ -565,7 +564,8 @@ Optional<FileEntryRef> DirectoryLookup::DoFrameworkLookup( SearchPath->insert(SearchPath->begin()+OrigSize, Private, Private+strlen(Private)); - File = FileMgr.getFileRef(FrameworkName, /*OpenFile=*/!SuggestedModule); + File = FileMgr.getOptionalFileRef(FrameworkName, + /*OpenFile=*/!SuggestedModule); } // If we found the header and are allowed to suggest a module, do so now. @@ -1076,9 +1076,7 @@ Optional<FileEntryRef> HeaderSearch::LookupSubframeworkHeader( } HeadersFilename.append(Filename.begin()+SlashPos+1, Filename.end()); - llvm::ErrorOr<FileEntryRef> File = - FileMgr.getFileRef(HeadersFilename, /*OpenFile=*/true); - + auto File = FileMgr.getOptionalFileRef(HeadersFilename, /*OpenFile=*/true); if (!File) { // Check ".../Frameworks/HIToolbox.framework/PrivateHeaders/HIToolbox.h" HeadersFilename = FrameworkName; @@ -1090,7 +1088,7 @@ Optional<FileEntryRef> HeaderSearch::LookupSubframeworkHeader( } HeadersFilename.append(Filename.begin()+SlashPos+1, Filename.end()); - File = FileMgr.getFileRef(HeadersFilename, /*OpenFile=*/true); + File = FileMgr.getOptionalFileRef(HeadersFilename, /*OpenFile=*/true); if (!File) return None; |