[VFS] Use generic_category for errors generated from the VFS

Errors are generally checked in clients by comparing to the portable
error condition in `std::errc`, which will have the `generic_category`
(eg. `std::errc::no_such_file_or_directory`). While in practice these
are usually equivalent for the standard errno's, they are not in *all*
implementations. One such example is CentOS 7.

Differential Revision: https://reviews.llvm.org/D120299
This commit is contained in:
Ben Barham 2022-02-21 21:13:38 -08:00
parent 2df019ab5a
commit ed4f0cb878
1 changed files with 2 additions and 4 deletions

View File

@ -485,8 +485,7 @@ class CombiningDirIterImpl : public llvm::vfs::detail::DirIterImpl {
}
if (IsFirstTime && CurrentDirIter == directory_iterator())
return std::error_code(static_cast<int>(errc::no_such_file_or_directory),
std::system_category());
return errc::no_such_file_or_directory;
return {};
}
@ -1285,8 +1284,7 @@ directory_iterator RedirectingFileSystem::dir_begin(const Twine &Dir,
}
if (!S->isDirectory()) {
EC = std::error_code(static_cast<int>(errc::not_a_directory),
std::system_category());
EC = errc::not_a_directory;
return {};
}