From: David Blaikie Date: Thu, 9 Feb 2012 19:24:12 +0000 (+0000) Subject: Change default error_code ctor to a 'named ctor' so it's more self-documenting. X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=58604cd944eec4a75046076cb53eb708aaf2ee09;p=oota-llvm.git Change default error_code ctor to a 'named ctor' so it's more self-documenting. Unify default construction of error_code uses on this idiom so that users don't feel compelled to make static globals for naming convenience. (unfortunately I couldn't make the original ctor private as some APIs don't return their result, instead using an out parameter (that makes sense to default construct) - which is a bit of a pity. I did, however, find/fix some cases of unnecessary default construction of error_code before I hit the unfixable cases) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150197 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/llvm/Support/system_error.h b/include/llvm/Support/system_error.h index 2c15b69c942..b30973271c8 100644 --- a/include/llvm/Support/system_error.h +++ b/include/llvm/Support/system_error.h @@ -738,6 +738,10 @@ class error_code { public: error_code() : _val_(0), _cat_(&system_category()) {} + static error_code success() { + return error_code(); + } + error_code(int _val, const error_category& _cat) : _val_(_val), _cat_(&_cat) {} diff --git a/lib/Support/DataStream.cpp b/lib/Support/DataStream.cpp index 0e8a717b515..94d14a5e36b 100644 --- a/lib/Support/DataStream.cpp +++ b/lib/Support/DataStream.cpp @@ -67,7 +67,7 @@ public: if (Filename == "-") { Fd = 0; sys::Program::ChangeStdinToBinary(); - return error_code(); + return error_code::success(); } int OpenFlags = O_RDONLY; @@ -77,7 +77,7 @@ public: Fd = ::open(Filename.c_str(), OpenFlags); if (Fd == -1) return error_code(errno, posix_category()); - return error_code(); + return error_code::success(); } }; diff --git a/lib/Support/FileUtilities.cpp b/lib/Support/FileUtilities.cpp index 4c8c0c63ffc..f9e9cf03660 100644 --- a/lib/Support/FileUtilities.cpp +++ b/lib/Support/FileUtilities.cpp @@ -200,7 +200,6 @@ int llvm::DiffFilesWithTolerance(const sys::PathWithStatus &FileA, // Now its safe to mmap the files into memory because both files // have a non-zero size. - error_code ec; OwningPtr F1; if (error_code ec = MemoryBuffer::getFile(FileA.c_str(), F1)) { if (Error) diff --git a/lib/Support/MemoryBuffer.cpp b/lib/Support/MemoryBuffer.cpp index 1a409720c02..4b15587db7a 100644 --- a/lib/Support/MemoryBuffer.cpp +++ b/lib/Support/MemoryBuffer.cpp @@ -36,8 +36,6 @@ #include using namespace llvm; -namespace { const llvm::error_code success; } - //===----------------------------------------------------------------------===// // MemoryBuffer implementation itself. //===----------------------------------------------------------------------===// @@ -306,7 +304,7 @@ error_code MemoryBuffer::getOpenFile(int FD, const char *Filename, RealMapOffset)) { result.reset(GetNamedBuffer( StringRef(Pages + Delta, MapSize), Filename, RequiresNullTerminator)); - return success; + return error_code::success(); } } @@ -344,7 +342,7 @@ error_code MemoryBuffer::getOpenFile(int FD, const char *Filename, } result.swap(SB); - return success; + return error_code::success(); } //===----------------------------------------------------------------------===// @@ -373,5 +371,5 @@ error_code MemoryBuffer::getSTDIN(OwningPtr &result) { } while (ReadBytes != 0); result.reset(getMemBufferCopy(Buffer, "")); - return success; + return error_code::success(); } diff --git a/lib/Support/PathV2.cpp b/lib/Support/PathV2.cpp index f0ce331c782..3ef13e253f0 100644 --- a/lib/Support/PathV2.cpp +++ b/lib/Support/PathV2.cpp @@ -31,8 +31,6 @@ namespace { const char prefered_separator = '/'; #endif - const llvm::error_code success; - StringRef find_first_component(StringRef path) { // Look for this first component in the following order. // * empty (in this case we return an empty string) @@ -607,7 +605,7 @@ error_code make_absolute(SmallVectorImpl &path) { // Already absolute. if (rootName && rootDirectory) - return success; + return error_code::success(); // All of the following conditions will need the current directory. SmallString<128> current_dir; @@ -619,7 +617,7 @@ error_code make_absolute(SmallVectorImpl &path) { path::append(current_dir, p); // Set path to the result. path.swap(current_dir); - return success; + return error_code::success(); } if (!rootName && rootDirectory) { @@ -628,7 +626,7 @@ error_code make_absolute(SmallVectorImpl &path) { path::append(curDirRootName, p); // Set path to the result. path.swap(curDirRootName); - return success; + return error_code::success(); } if (rootName && !rootDirectory) { @@ -640,7 +638,7 @@ error_code make_absolute(SmallVectorImpl &path) { SmallString<128> res; path::append(res, pRootName, bRootDirectory, bRelativePath, pRelativePath); path.swap(res); - return success; + return error_code::success(); } llvm_unreachable("All rootName and rootDirectory combinations should have " @@ -679,7 +677,7 @@ error_code is_directory(const Twine &path, bool &result) { if (error_code ec = status(path, st)) return ec; result = is_directory(st); - return success; + return error_code::success(); } bool is_regular_file(file_status status) { @@ -691,7 +689,7 @@ error_code is_regular_file(const Twine &path, bool &result) { if (error_code ec = status(path, st)) return ec; result = is_regular_file(st); - return success; + return error_code::success(); } bool is_symlink(file_status status) { @@ -703,7 +701,7 @@ error_code is_symlink(const Twine &path, bool &result) { if (error_code ec = status(path, st)) return ec; result = is_symlink(st); - return success; + return error_code::success(); } bool is_other(file_status status) { @@ -730,13 +728,13 @@ error_code has_magic(const Twine &path, const Twine &magic, bool &result) { if (ec == errc::value_too_large) { // Magic.size() > file_size(Path). result = false; - return success; + return error_code::success(); } return ec; } result = Magic == Buffer; - return success; + return error_code::success(); } /// @brief Identify the magic in magic. @@ -857,7 +855,7 @@ error_code identify_magic(const Twine &path, file_magic &result) { return ec; result = identify_magic(Magic); - return success; + return error_code::success(); } namespace { @@ -884,7 +882,7 @@ error_code remove_all_r(StringRef path, file_type ft, uint32_t &count) { ++count; } - return success; + return error_code::success(); } } // end unnamed namespace diff --git a/lib/Support/Unix/PathV2.inc b/lib/Support/Unix/PathV2.inc index 272109d03d7..c2d7df66d9c 100644 --- a/lib/Support/Unix/PathV2.inc +++ b/lib/Support/Unix/PathV2.inc @@ -87,7 +87,7 @@ namespace { result.clear(); StringRef d(dir); result.append(d.begin(), d.end()); - return success; + return error_code::success(); } } @@ -110,7 +110,7 @@ error_code current_path(SmallVectorImpl &result) { } result.set_size(strlen(result.data())); - return success; + return error_code::success(); } error_code copy_file(const Twine &from, const Twine &to, copy_option copt) { @@ -169,7 +169,7 @@ error_code copy_file(const Twine &from, const Twine &to, copy_option copt) { if (sz_read < 0) return error_code(errno, system_category()); - return success; + return error_code::success(); } error_code create_directory(const Twine &path, bool &existed) { @@ -183,7 +183,7 @@ error_code create_directory(const Twine &path, bool &existed) { } else existed = false; - return success; + return error_code::success(); } error_code create_hard_link(const Twine &to, const Twine &from) { @@ -196,7 +196,7 @@ error_code create_hard_link(const Twine &to, const Twine &from) { if (::link(t.begin(), f.begin()) == -1) return error_code(errno, system_category()); - return success; + return error_code::success(); } error_code create_symlink(const Twine &to, const Twine &from) { @@ -209,7 +209,7 @@ error_code create_symlink(const Twine &to, const Twine &from) { if (::symlink(t.begin(), f.begin()) == -1) return error_code(errno, system_category()); - return success; + return error_code::success(); } error_code remove(const Twine &path, bool &existed) { @@ -223,7 +223,7 @@ error_code remove(const Twine &path, bool &existed) { } else existed = true; - return success; + return error_code::success(); } error_code rename(const Twine &from, const Twine &to) { @@ -245,7 +245,7 @@ error_code rename(const Twine &from, const Twine &to) { return error_code(errno, system_category()); } - return success; + return error_code::success(); } error_code resize_file(const Twine &path, uint64_t size) { @@ -255,7 +255,7 @@ error_code resize_file(const Twine &path, uint64_t size) { if (::truncate(p.begin(), size) == -1) return error_code(errno, system_category()); - return success; + return error_code::success(); } error_code exists(const Twine &path, bool &result) { @@ -270,7 +270,7 @@ error_code exists(const Twine &path, bool &result) { } else result = true; - return success; + return error_code::success(); } bool equivalent(file_status A, file_status B) { @@ -284,7 +284,7 @@ error_code equivalent(const Twine &A, const Twine &B, bool &result) { if (error_code ec = status(A, fsA)) return ec; if (error_code ec = status(B, fsB)) return ec; result = equivalent(fsA, fsB); - return success; + return error_code::success(); } error_code file_size(const Twine &path, uint64_t &result) { @@ -298,7 +298,7 @@ error_code file_size(const Twine &path, uint64_t &result) { return make_error_code(errc::operation_not_permitted); result = status.st_size; - return success; + return error_code::success(); } error_code status(const Twine &path, file_status &result) { @@ -333,7 +333,7 @@ error_code status(const Twine &path, file_status &result) { result.st_dev = status.st_dev; result.st_ino = status.st_ino; - return success; + return error_code::success(); } error_code unique_file(const Twine &model, int &result_fd, @@ -428,7 +428,7 @@ rety_open_create: result_path.append(d.begin(), d.end()); result_fd = RandomFD; - return success; + return error_code::success(); } error_code detail::directory_iterator_construct(detail::DirIterState &it, @@ -450,7 +450,7 @@ error_code detail::directory_iterator_destruct(detail::DirIterState &it) { ::closedir(reinterpret_cast(it.IterationHandle)); it.IterationHandle = 0; it.CurrentEntry = directory_entry(); - return success; + return error_code::success(); } error_code detail::directory_iterator_increment(detail::DirIterState &it) { @@ -467,7 +467,7 @@ error_code detail::directory_iterator_increment(detail::DirIterState &it) { } else return directory_iterator_destruct(it); - return success; + return error_code::success(); } error_code get_magic(const Twine &path, uint32_t len, @@ -498,7 +498,7 @@ error_code get_magic(const Twine &path, uint32_t len, } std::fclose(file); result.set_size(len); - return success; + return error_code::success(); } } // end namespace fs diff --git a/lib/Support/Windows/PathV2.inc b/lib/Support/Windows/PathV2.inc index 7ca33c0bc96..e9ce5d9097a 100644 --- a/lib/Support/Windows/PathV2.inc +++ b/lib/Support/Windows/PathV2.inc @@ -62,7 +62,7 @@ namespace { utf16.push_back(0); utf16.pop_back(); - return success; + return error_code::success(); } error_code UTF16ToUTF8(const wchar_t *utf16, size_t utf16_len, @@ -92,7 +92,7 @@ namespace { utf8.push_back(0); utf8.pop_back(); - return success; + return error_code::success(); } error_code TempDir(SmallVectorImpl &result) { @@ -108,7 +108,7 @@ namespace { } result.set_size(len); - return success; + return error_code::success(); } bool is_separator(const wchar_t value) { @@ -167,7 +167,7 @@ retry_cur_dir: if (len == 0) return windows_error(::GetLastError()); - return success; + return error_code::success(); } error_code copy_file(const Twine &from, const Twine &to, copy_option copt) { @@ -190,7 +190,7 @@ error_code copy_file(const Twine &from, const Twine &to, copy_option copt) { if (res == 0) return windows_error(::GetLastError()); - return success; + return error_code::success(); } error_code create_directory(const Twine &path, bool &existed) { @@ -210,7 +210,7 @@ error_code create_directory(const Twine &path, bool &existed) { } else existed = false; - return success; + return error_code::success(); } error_code create_hard_link(const Twine &to, const Twine &from) { @@ -229,7 +229,7 @@ error_code create_hard_link(const Twine &to, const Twine &from) { if (!::CreateHardLinkW(wide_from.begin(), wide_to.begin(), NULL)) return windows_error(::GetLastError()); - return success; + return error_code::success(); } error_code create_symlink(const Twine &to, const Twine &from) { @@ -252,7 +252,7 @@ error_code create_symlink(const Twine &to, const Twine &from) { if (!create_symbolic_link_api(wide_from.begin(), wide_to.begin(), 0)) return windows_error(::GetLastError()); - return success; + return error_code::success(); } error_code remove(const Twine &path, bool &existed) { @@ -285,7 +285,7 @@ error_code remove(const Twine &path, bool &existed) { existed = true; } - return success; + return error_code::success(); } error_code rename(const Twine &from, const Twine &to) { @@ -305,7 +305,7 @@ error_code rename(const Twine &from, const Twine &to) { MOVEFILE_COPY_ALLOWED | MOVEFILE_REPLACE_EXISTING)) return windows_error(::GetLastError()); - return success; + return error_code::success(); } error_code resize_file(const Twine &path, uint64_t size) { @@ -347,7 +347,7 @@ error_code exists(const Twine &path, bool &result) { result = false; } else result = true; - return success; + return error_code::success(); } bool equivalent(file_status A, file_status B) { @@ -366,7 +366,7 @@ error_code equivalent(const Twine &A, const Twine &B, bool &result) { if (error_code ec = status(A, fsA)) return ec; if (error_code ec = status(B, fsB)) return ec; result = equivalent(fsA, fsB); - return success; + return error_code::success(); } error_code file_size(const Twine &path, uint64_t &result) { @@ -387,7 +387,7 @@ error_code file_size(const Twine &path, uint64_t &result) { (uint64_t(FileData.nFileSizeHigh) << (sizeof(FileData.nFileSizeLow) * 8)) + FileData.nFileSizeLow; - return success; + return error_code::success(); } static bool isReservedName(StringRef path) { @@ -420,7 +420,7 @@ error_code status(const Twine &path, file_status &result) { StringRef path8 = path.toStringRef(path_storage); if (isReservedName(path8)) { result = file_status(file_type::character_file); - return success; + return error_code::success(); } if (error_code ec = UTF8ToUTF16(path8, path_utf16)) @@ -470,7 +470,7 @@ error_code status(const Twine &path, file_status &result) { result.VolumeSerialNumber = Info.dwVolumeSerialNumber; } - return success; + return error_code::success(); handle_status_error: error_code ec = windows_error(::GetLastError()); @@ -484,7 +484,7 @@ handle_status_error: return ec; } - return success; + return error_code::success(); } error_code unique_file(const Twine &model, int &result_fd, @@ -611,7 +611,7 @@ retry_create_file: } result_fd = fd; - return success; + return error_code::success(); } error_code get_magic(const Twine &path, uint32_t len, @@ -653,7 +653,7 @@ error_code get_magic(const Twine &path, uint32_t len, } result.set_size(len); - return success; + return error_code::success(); } error_code detail::directory_iterator_construct(detail::DirIterState &it, @@ -705,7 +705,7 @@ error_code detail::directory_iterator_construct(detail::DirIterState &it, path::append(directory_entry_path, directory_entry_name_utf8.str()); it.CurrentEntry = directory_entry(directory_entry_path.str()); - return success; + return error_code::success(); } error_code detail::directory_iterator_destruct(detail::DirIterState &it) { @@ -714,7 +714,7 @@ error_code detail::directory_iterator_destruct(detail::DirIterState &it) { ScopedFindHandle close(HANDLE(it.IterationHandle)); it.IterationHandle = 0; it.CurrentEntry = directory_entry(); - return success; + return error_code::success(); } error_code detail::directory_iterator_increment(detail::DirIterState &it) { @@ -740,7 +740,7 @@ error_code detail::directory_iterator_increment(detail::DirIterState &it) { return ec; it.CurrentEntry.replace_filename(Twine(directory_entry_path_utf8)); - return success; + return error_code::success(); } } // end namespace fs