From ed4f0cb87878e63378f2a37a2af2b538eb493a04 Mon Sep 17 00:00:00 2001 From: Ben Barham Date: Mon, 21 Feb 2022 21:13:38 -0800 Subject: [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 --- llvm/lib/Support/VirtualFileSystem.cpp | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) (limited to 'llvm/lib/Support/VirtualFileSystem.cpp') diff --git a/llvm/lib/Support/VirtualFileSystem.cpp b/llvm/lib/Support/VirtualFileSystem.cpp index 49151682624d..590bc1902fbe 100644 --- a/llvm/lib/Support/VirtualFileSystem.cpp +++ b/llvm/lib/Support/VirtualFileSystem.cpp @@ -485,8 +485,7 @@ class CombiningDirIterImpl : public llvm::vfs::detail::DirIterImpl { } if (IsFirstTime && CurrentDirIter == directory_iterator()) - return std::error_code(static_cast(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(errc::not_a_directory), - std::system_category()); + EC = errc::not_a_directory; return {}; } -- cgit v1.2.3