[llvm] r210920 - Finishing touch for the std::error_code transition.
Hal Finkel
hfinkel at anl.gov
Fri Jun 13 10:42:19 PDT 2014
----- Original Message -----
> From: "Rafael Espindola" <rafael.espindola at gmail.com>
> To: llvm-commits at cs.uiuc.edu
> Sent: Friday, June 13, 2014 12:20:49 PM
> Subject: [llvm] r210920 - Finishing touch for the std::error_code transition.
>
> Author: rafael
> Date: Fri Jun 13 12:20:48 2014
> New Revision: 210920
>
> URL: http://llvm.org/viewvc/llvm-project?rev=210920&view=rev
> Log:
> Finishing touch for the std::error_code transition.
>
> While std::error_code itself seems to work OK in all platforms, there
> are few annoying differences with regards to the std::errc
> enumeration.
>
> This patch adds a simple llvm enumeration, which will hopefully avoid
> build
> breakages in other platforms and surprises as we get more uses of
> std::error_code.
>
> Added:
> llvm/trunk/include/llvm/Support/Errc.h
> Modified:
> llvm/trunk/include/llvm/Support/ErrorOr.h
> llvm/trunk/lib/Support/FileOutputBuffer.cpp
> llvm/trunk/lib/Support/LockFileManager.cpp
> llvm/trunk/lib/Support/MemoryBuffer.cpp
> llvm/trunk/lib/Support/Path.cpp
> llvm/trunk/lib/Support/Unix/Path.inc
> llvm/trunk/lib/Support/Windows/Path.inc
> llvm/trunk/lib/Support/WindowsError.cpp
> llvm/trunk/lib/Support/YAMLTraits.cpp
> llvm/trunk/tools/llvm-ar/llvm-ar.cpp
> llvm/trunk/tools/llvm-cov/llvm-cov.cpp
> llvm/trunk/tools/llvm-symbolizer/LLVMSymbolize.cpp
> llvm/trunk/unittests/Support/ErrorOrTest.cpp
> llvm/trunk/unittests/Support/Path.cpp
> llvm/trunk/unittests/Transforms/DebugIR/DebugIR.cpp
>
> Added: llvm/trunk/include/llvm/Support/Errc.h
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Support/Errc.h?rev=210920&view=auto
> ==============================================================================
> --- llvm/trunk/include/llvm/Support/Errc.h (added)
> +++ llvm/trunk/include/llvm/Support/Errc.h Fri Jun 13 12:20:48 2014
> @@ -0,0 +1,86 @@
> +//===- llvm/Support/Errc.h - Defines the llvm::errc enum --------*-
> C++ -*-===//
> +//
> +// The LLVM Compiler Infrastructure
> +//
> +// This file is distributed under the University of Illinois Open
> Source
> +// License. See LICENSE.TXT for details.
> +//
> +//===----------------------------------------------------------------------===//
> +//
> +// While std::error_code works OK on all platforms we use, there are
> some
> +// some problems with std::errc that can be avoided by using our own
> +// enumeration:
> +//
> +// * std::errc is a namespace in some implementations. That meas
> that ADL
> +// doesn't work and it is sometimes necessary to write
> std::make_error_code
> +// or in templates:
> +// using std::make_error_code;
> +// make_error_code(...);
> +//
> +// with this enum it is safe to always just use make_error_code.
Should we file a defect report?
> +//
> +// * Some implementations define fewer names than others. This
> header has
> +// the intersection of all the ones we support.
I don't understand how this problem is helped by this header, if it hurt us previously, and why it mattered otherwise. Can you please explain?
Thanks again,
Hal
> +//
> +// * std::errc is just marked with is_error_condition_enum. This
> means that
> +// common patters like AnErrorCode ==
> errc::no_such_file_or_directory take
> +// 4 virtual calls instead of two comparisons.
> +//===----------------------------------------------------------------------===//
> +
> +#ifndef LLVM_SUPPORT_ERRC_H
> +#define LLVM_SUPPORT_ERRC_H
> +
> +#include <system_error>
> +
> +namespace llvm {
> +enum class errc {
> + argument_list_too_long = int(std::errc::argument_list_too_long),
> + argument_out_of_domain = int(std::errc::argument_out_of_domain),
> + bad_address = int(std::errc::bad_address),
> + bad_file_descriptor = int(std::errc::bad_file_descriptor),
> + broken_pipe = int(std::errc::broken_pipe),
> + device_or_resource_busy = int(std::errc::device_or_resource_busy),
> + directory_not_empty = int(std::errc::directory_not_empty),
> + executable_format_error = int(std::errc::executable_format_error),
> + file_exists = int(std::errc::file_exists),
> + file_too_large = int(std::errc::file_too_large),
> + filename_too_long = int(std::errc::filename_too_long),
> + function_not_supported = int(std::errc::function_not_supported),
> + illegal_byte_sequence = int(std::errc::illegal_byte_sequence),
> + inappropriate_io_control_operation =
> + int(std::errc::inappropriate_io_control_operation),
> + interrupted = int(std::errc::interrupted),
> + invalid_argument = int(std::errc::invalid_argument),
> + invalid_seek = int(std::errc::invalid_seek),
> + io_error = int(std::errc::io_error),
> + is_a_directory = int(std::errc::is_a_directory),
> + no_child_process = int(std::errc::no_child_process),
> + no_lock_available = int(std::errc::no_lock_available),
> + no_space_on_device = int(std::errc::no_space_on_device),
> + no_such_device_or_address =
> int(std::errc::no_such_device_or_address),
> + no_such_device = int(std::errc::no_such_device),
> + no_such_file_or_directory =
> int(std::errc::no_such_file_or_directory),
> + no_such_process = int(std::errc::no_such_process),
> + not_a_directory = int(std::errc::not_a_directory),
> + not_enough_memory = int(std::errc::not_enough_memory),
> + operation_not_permitted = int(std::errc::operation_not_permitted),
> + permission_denied = int(std::errc::permission_denied),
> + read_only_file_system = int(std::errc::read_only_file_system),
> + resource_deadlock_would_occur =
> int(std::errc::resource_deadlock_would_occur),
> + resource_unavailable_try_again =
> + int(std::errc::resource_unavailable_try_again),
> + result_out_of_range = int(std::errc::result_out_of_range),
> + too_many_files_open_in_system =
> int(std::errc::too_many_files_open_in_system),
> + too_many_files_open = int(std::errc::too_many_files_open),
> + too_many_links = int(std::errc::too_many_links)
> +};
> +
> +inline std::error_code make_error_code(errc E) {
> + return std::error_code(static_cast<int>(E),
> std::generic_category());
> +}
> +}
> +
> +namespace std {
> +template <> struct is_error_code_enum<llvm::errc> : std::true_type
> {};
> +}
> +#endif
>
> Modified: llvm/trunk/include/llvm/Support/ErrorOr.h
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Support/ErrorOr.h?rev=210920&r1=210919&r2=210920&view=diff
> ==============================================================================
> --- llvm/trunk/include/llvm/Support/ErrorOr.h (original)
> +++ llvm/trunk/include/llvm/Support/ErrorOr.h Fri Jun 13 12:20:48
> 2014
> @@ -99,7 +99,6 @@ public:
> std::is_error_condition_enum<E>::value,
> void *>::type = 0)
> : HasError(true) {
> - using std::make_error_code;
> new (getErrorStorage())
> std::error_code(make_error_code(ErrorCode));
> }
>
>
> Modified: llvm/trunk/lib/Support/FileOutputBuffer.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/FileOutputBuffer.cpp?rev=210920&r1=210919&r2=210920&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Support/FileOutputBuffer.cpp (original)
> +++ llvm/trunk/lib/Support/FileOutputBuffer.cpp Fri Jun 13 12:20:48
> 2014
> @@ -11,6 +11,7 @@
> //
> //===----------------------------------------------------------------------===//
>
> +#include "llvm/Support/Errc.h"
> #include "llvm/Support/FileOutputBuffer.h"
> #include "llvm/ADT/SmallVector.h"
> #include "llvm/Support/raw_ostream.h"
> @@ -51,7 +52,7 @@ FileOutputBuffer::create(StringRef FileP
> if (EC)
> return EC;
> else
> - return
> std::make_error_code(std::errc::operation_not_permitted);
> + return make_error_code(errc::operation_not_permitted);
> }
>
> // Delete target file.
>
> Modified: llvm/trunk/lib/Support/LockFileManager.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/LockFileManager.cpp?rev=210920&r1=210919&r2=210920&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Support/LockFileManager.cpp (original)
> +++ llvm/trunk/lib/Support/LockFileManager.cpp Fri Jun 13 12:20:48
> 2014
> @@ -9,6 +9,7 @@
> #include "llvm/Support/LockFileManager.h"
> #include "llvm/ADT/STLExtras.h"
> #include "llvm/ADT/StringExtras.h"
> +#include "llvm/Support/Errc.h"
> #include "llvm/Support/FileSystem.h"
> #include "llvm/Support/MemoryBuffer.h"
> #include "llvm/Support/Path.h"
> @@ -112,7 +113,7 @@ LockFileManager::LockFileManager(StringR
> if (Out.has_error()) {
> // We failed to write out PID, so make up an excuse, remove
> the
> // unique lock file, and fail.
> - Error = std::make_error_code(std::errc::no_space_on_device);
> + Error = make_error_code(errc::no_space_on_device);
> sys::fs::remove(UniqueLockFileName.c_str());
> return;
> }
> @@ -125,7 +126,7 @@ LockFileManager::LockFileManager(StringR
> if (!EC)
> return;
>
> - if (EC != std::errc::file_exists) {
> + if (EC != errc::file_exists) {
> Error = EC;
> return;
> }
>
> Modified: llvm/trunk/lib/Support/MemoryBuffer.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/MemoryBuffer.cpp?rev=210920&r1=210919&r2=210920&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Support/MemoryBuffer.cpp (original)
> +++ llvm/trunk/lib/Support/MemoryBuffer.cpp Fri Jun 13 12:20:48 2014
> @@ -14,6 +14,7 @@
> #include "llvm/Support/MemoryBuffer.h"
> #include "llvm/ADT/SmallString.h"
> #include "llvm/Config/config.h"
> +#include "llvm/Support/Errc.h"
> #include "llvm/Support/Errno.h"
> #include "llvm/Support/FileSystem.h"
> #include "llvm/Support/MathExtras.h"
> @@ -364,7 +365,7 @@ static std::error_code getOpenFileImpl(i
> if (!Buf) {
> // Failed to create a buffer. The only way it can fail is if
> // new(std::nothrow) returns 0.
> - return std::make_error_code(std::errc::not_enough_memory);
> + return make_error_code(errc::not_enough_memory);
> }
>
> std::unique_ptr<MemoryBuffer> SB(Buf);
>
> Modified: llvm/trunk/lib/Support/Path.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/Path.cpp?rev=210920&r1=210919&r2=210920&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Support/Path.cpp (original)
> +++ llvm/trunk/lib/Support/Path.cpp Fri Jun 13 12:20:48 2014
> @@ -11,6 +11,7 @@
> //
> //===----------------------------------------------------------------------===//
>
> +#include "llvm/Support/Errc.h"
> #include "llvm/Support/Path.h"
> #include "llvm/Support/Endian.h"
> #include "llvm/Support/ErrorHandling.h"
> @@ -204,7 +205,7 @@ retry_random_path:
> if (std::error_code EC =
> sys::fs::openFileForWrite(Twine(ResultPath.begin()),
> ResultFD,
> sys::fs::F_RW |
> sys::fs::F_Excl, Mode)) {
> - if (EC == std::errc::file_exists)
> + if (EC == errc::file_exists)
> goto retry_random_path;
> return EC;
> }
> @@ -225,7 +226,7 @@ retry_random_path:
> case FS_Dir: {
> if (std::error_code EC =
> sys::fs::create_directory(ResultPath.begin(), false)) {
> - if (EC == std::errc::file_exists)
> + if (EC == errc::file_exists)
> goto retry_random_path;
> return EC;
> }
> @@ -830,7 +831,7 @@ std::error_code create_directories(const
> std::error_code EC = create_directory(P, IgnoreExisting);
> // If we succeeded, or had any error other than the parent not
> existing, just
> // return it.
> - if (EC != std::errc::no_such_file_or_directory)
> + if (EC != errc::no_such_file_or_directory)
> return EC;
>
> // We failed because of a no_such_file_or_directory, try to create
> the
>
> Modified: llvm/trunk/lib/Support/Unix/Path.inc
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/Unix/Path.inc?rev=210920&r1=210919&r2=210920&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Support/Unix/Path.inc (original)
> +++ llvm/trunk/lib/Support/Unix/Path.inc Fri Jun 13 12:20:48 2014
> @@ -317,7 +317,7 @@ std::error_code remove(const Twine &path
> // effectively prevents LLVM from erasing things like /dev/null,
> any block
> // special file, or other things that aren't "regular" files.
> if (!S_ISREG(buf.st_mode) && !S_ISDIR(buf.st_mode) &&
> !S_ISLNK(buf.st_mode))
> - return make_error_code(std::errc::operation_not_permitted);
> + return make_error_code(errc::operation_not_permitted);
>
> if (::remove(p.begin()) == -1) {
> if (errno != ENOENT || !IgnoreNonExisting)
> @@ -404,7 +404,7 @@ static std::error_code fillStatus(int St
> file_status &Result) {
> if (StatRet != 0) {
> std::error_code ec(errno, std::generic_category());
> - if (ec == std::errc::no_such_file_or_directory)
> + if (ec == errc::no_such_file_or_directory)
> Result = file_status(file_type::file_not_found);
> else
> Result = file_status(file_type::status_error);
> @@ -468,7 +468,7 @@ std::error_code setLastModificationAndAc
> return std::error_code();
> #else
> #warning Missing futimes() and futimens()
> - return make_error_code(std::errc::not_supported);
> + return make_error_code(errc::not_supported);
> #endif
> }
>
> @@ -512,7 +512,7 @@ mapped_file_region::mapped_file_region(c
> , Mapping() {
> // Make sure that the requested size fits within SIZE_T.
> if (length > std::numeric_limits<size_t>::max()) {
> - ec = make_error_code(std::errc::invalid_argument);
> + ec = make_error_code(errc::invalid_argument);
> return;
> }
>
> @@ -541,7 +541,7 @@ mapped_file_region::mapped_file_region(i
> , Mapping() {
> // Make sure that the requested size fits within SIZE_T.
> if (length > std::numeric_limits<size_t>::max()) {
> - ec = make_error_code(std::errc::invalid_argument);
> + ec = make_error_code(errc::invalid_argument);
> return;
> }
>
>
> Modified: llvm/trunk/lib/Support/Windows/Path.inc
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/Windows/Path.inc?rev=210920&r1=210919&r2=210920&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Support/Windows/Path.inc (original)
> +++ llvm/trunk/lib/Support/Windows/Path.inc Fri Jun 13 12:20:48 2014
> @@ -196,7 +196,7 @@ std::error_code remove(const Twine &path
>
> file_status ST;
> if (std::error_code EC = status(path, ST)) {
> - if (EC != std::errc::no_such_file_or_directory ||
> !IgnoreNonExisting)
> + if (EC != errc::no_such_file_or_directory || !IgnoreNonExisting)
> return EC;
> return std::error_code();
> }
> @@ -208,14 +208,14 @@ std::error_code remove(const Twine &path
> if (ST.type() == file_type::directory_file) {
> if (!::RemoveDirectoryW(c_str(path_utf16))) {
> std::error_code EC = windows_error(::GetLastError());
> - if (EC != std::errc::no_such_file_or_directory ||
> !IgnoreNonExisting)
> + if (EC != errc::no_such_file_or_directory ||
> !IgnoreNonExisting)
> return EC;
> }
> return std::error_code();
> }
> if (!::DeleteFileW(c_str(path_utf16))) {
> std::error_code EC = windows_error(::GetLastError());
> - if (EC != std::errc::no_such_file_or_directory ||
> !IgnoreNonExisting)
> + if (EC != errc::no_such_file_or_directory || !IgnoreNonExisting)
> return EC;
> }
> return std::error_code();
> @@ -481,7 +481,7 @@ std::error_code mapped_file_region::init
> _close(FileDescriptor);
> } else
> ::CloseHandle(FileHandle);
> - return std::make_error_code(std::errc::invalid_argument);
> + return make_error_code(errc::invalid_argument);
> }
>
> DWORD flprotect;
> @@ -617,7 +617,7 @@ mapped_file_region::mapped_file_region(i
> if (closefd)
> _close(FileDescriptor);
> FileDescriptor = 0;
> - ec = std::make_error_code(std::errc::bad_file_descriptor);
> + ec = make_error_code(errc::bad_file_descriptor);
> return;
> }
>
> @@ -779,7 +779,7 @@ std::error_code openFileForRead(const Tw
> if (LastError != ERROR_ACCESS_DENIED)
> return EC;
> if (is_directory(Name))
> - return std::make_error_code(std::errc::is_a_directory);
> + return make_error_code(errc::is_a_directory);
> return EC;
> }
>
> @@ -831,7 +831,7 @@ std::error_code openFileForWrite(const T
> if (LastError != ERROR_ACCESS_DENIED)
> return EC;
> if (is_directory(Name))
> - return std::make_error_code(std::errc::is_a_directory);
> + return make_error_code(errc::is_a_directory);
> return EC;
> }
>
>
> Modified: llvm/trunk/lib/Support/WindowsError.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/WindowsError.cpp?rev=210920&r1=210919&r2=210920&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Support/WindowsError.cpp (original)
> +++ llvm/trunk/lib/Support/WindowsError.cpp Fri Jun 13 12:20:48 2014
> @@ -12,12 +12,12 @@
> // errors to generic ones. The one implemented in msvc is too
> conservative
> // for llvm, so we do an extra mapping when constructing an
> error_code
> // from an windows error. This allows the rest of llvm to simple
> checks
> -// like "EC == std::errc::file_exists" and have it work on both
> posix and
> +// like "EC == errc::file_exists" and have it work on both posix
> and
> // windows.
> //
> //===----------------------------------------------------------------------===//
>
> -
> +#include "llvm/Support/Errc.h"
> #include "llvm/Support/WindowsError.h"
>
> #include "llvm/Config/llvm-config.h"
> @@ -30,7 +30,7 @@
> // I'd rather not double the line count of the following.
> #define MAP_ERR_TO_COND(x, y)
> \
> case x:
> \
> - return std::make_error_code(std::errc::y)
> + return make_error_code(errc::y)
>
> std::error_code llvm::mapWindowsError(unsigned EV) {
> switch (EV) {
>
> Modified: llvm/trunk/lib/Support/YAMLTraits.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/YAMLTraits.cpp?rev=210920&r1=210919&r2=210920&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Support/YAMLTraits.cpp (original)
> +++ llvm/trunk/lib/Support/YAMLTraits.cpp Fri Jun 13 12:20:48 2014
> @@ -7,6 +7,7 @@
> //
> //===----------------------------------------------------------------------===//
>
> +#include "llvm/Support/Errc.h"
> #include "llvm/Support/YAMLTraits.h"
> #include "llvm/ADT/Twine.h"
> #include "llvm/Support/Casting.h"
> @@ -72,7 +73,7 @@ bool Input::setCurrentDocument() {
> Node *N = DocIterator->getRoot();
> if (!N) {
> assert(Strm->failed() && "Root is NULL iff parsing failed");
> - EC = std::make_error_code(std::errc::invalid_argument);
> + EC = make_error_code(errc::invalid_argument);
> return false;
> }
>
> @@ -122,7 +123,7 @@ bool Input::preflightKey(const char *Key
> // nodes are present.
> if (!CurrentNode) {
> if (Required)
> - EC = std::make_error_code(std::errc::invalid_argument);
> + EC = make_error_code(errc::invalid_argument);
> return false;
> }
>
> @@ -298,7 +299,7 @@ void Input::setError(HNode *hnode, const
>
> void Input::setError(Node *node, const Twine &message) {
> Strm->printError(node, message);
> - EC = std::make_error_code(std::errc::invalid_argument);
> + EC = make_error_code(errc::invalid_argument);
> }
>
> Input::HNode *Input::createHNodes(Node *N) {
>
> Modified: llvm/trunk/tools/llvm-ar/llvm-ar.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-ar/llvm-ar.cpp?rev=210920&r1=210919&r2=210920&view=diff
> ==============================================================================
> --- llvm/trunk/tools/llvm-ar/llvm-ar.cpp (original)
> +++ llvm/trunk/tools/llvm-ar/llvm-ar.cpp Fri Jun 13 12:20:48 2014
> @@ -17,6 +17,7 @@
> #include "llvm/Object/Archive.h"
> #include "llvm/Object/ObjectFile.h"
> #include "llvm/Support/CommandLine.h"
> +#include "llvm/Support/Errc.h"
> #include "llvm/Support/FileSystem.h"
> #include "llvm/Support/Format.h"
> #include "llvm/Support/ManagedStatic.h"
> @@ -453,7 +454,7 @@ int NewArchiveIterator::getFD() const {
> // Linux cannot open directories with open(2), although
> // cygwin and *bsd can.
> if (NewStatus.type() == sys::fs::file_type::directory_file)
> - failIfError(std::make_error_code(std::errc::is_a_directory),
> NewFilename);
> + failIfError(make_error_code(errc::is_a_directory), NewFilename);
>
> return NewFD;
> }
> @@ -939,7 +940,7 @@ static int performOperation(ArchiveOpera
> // Create or open the archive object.
> std::unique_ptr<MemoryBuffer> Buf;
> std::error_code EC = MemoryBuffer::getFile(ArchiveName, Buf, -1,
> false);
> - if (EC && EC != std::errc::no_such_file_or_directory) {
> + if (EC && EC != errc::no_such_file_or_directory) {
> errs() << ToolName << ": error opening '" << ArchiveName
> << "': " << EC.message() << "!\n";
> return 1;
> @@ -957,7 +958,7 @@ static int performOperation(ArchiveOpera
> return 0;
> }
>
> - assert(EC == std::errc::no_such_file_or_directory);
> + assert(EC == errc::no_such_file_or_directory);
>
> if (!shouldCreateArchive(Operation)) {
> failIfError(EC, Twine("error loading '") + ArchiveName + "'");
>
> Modified: llvm/trunk/tools/llvm-cov/llvm-cov.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-cov/llvm-cov.cpp?rev=210920&r1=210919&r2=210920&view=diff
> ==============================================================================
> --- llvm/trunk/tools/llvm-cov/llvm-cov.cpp (original)
> +++ llvm/trunk/tools/llvm-cov/llvm-cov.cpp Fri Jun 13 12:20:48 2014
> @@ -13,6 +13,7 @@
>
> #include "llvm/ADT/SmallString.h"
> #include "llvm/Support/CommandLine.h"
> +#include "llvm/Support/Errc.h"
> #include "llvm/Support/FileSystem.h"
> #include "llvm/Support/GCOV.h"
> #include "llvm/Support/ManagedStatic.h"
> @@ -116,7 +117,7 @@ int main(int argc, char **argv) {
>
> std::unique_ptr<MemoryBuffer> GCDA_Buff;
> if (std::error_code ec = MemoryBuffer::getFileOrSTDIN(InputGCDA,
> GCDA_Buff)) {
> - if (ec != std::errc::no_such_file_or_directory) {
> + if (ec != errc::no_such_file_or_directory) {
> errs() << InputGCDA << ": " << ec.message() << "\n";
> return 1;
> }
>
> Modified: llvm/trunk/tools/llvm-symbolizer/LLVMSymbolize.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-symbolizer/LLVMSymbolize.cpp?rev=210920&r1=210919&r2=210920&view=diff
> ==============================================================================
> --- llvm/trunk/tools/llvm-symbolizer/LLVMSymbolize.cpp (original)
> +++ llvm/trunk/tools/llvm-symbolizer/LLVMSymbolize.cpp Fri Jun 13
> 12:20:48 2014
> @@ -19,6 +19,7 @@
> #include "llvm/Support/Casting.h"
> #include "llvm/Support/Compression.h"
> #include "llvm/Support/DataExtractor.h"
> +#include "llvm/Support/Errc.h"
> #include "llvm/Support/FileSystem.h"
> #include "llvm/Support/MemoryBuffer.h"
> #include "llvm/Support/Path.h"
> @@ -311,7 +312,7 @@ LLVMSymbolizer::getOrCreateBinary(const
> getDarwinDWARFResourceForPath(Path);
> BinaryOrErr = createBinary(ResourcePath);
> std::error_code EC = BinaryOrErr.getError();
> - if (EC != std::errc::no_such_file_or_directory && !error(EC))
> {
> + if (EC != errc::no_such_file_or_directory && !error(EC)) {
> DbgBin = BinaryOrErr.get();
> ParsedBinariesAndObjects.push_back(std::unique_ptr<Binary>(DbgBin));
> }
>
> Modified: llvm/trunk/unittests/Support/ErrorOrTest.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/Support/ErrorOrTest.cpp?rev=210920&r1=210919&r2=210920&view=diff
> ==============================================================================
> --- llvm/trunk/unittests/Support/ErrorOrTest.cpp (original)
> +++ llvm/trunk/unittests/Support/ErrorOrTest.cpp Fri Jun 13 12:20:48
> 2014
> @@ -8,6 +8,7 @@
> //===----------------------------------------------------------------------===//
>
> #include "llvm/Support/ErrorOr.h"
> +#include "llvm/Support/Errc.h"
> #include "gtest/gtest.h"
> #include <memory>
>
> @@ -16,7 +17,7 @@ using namespace llvm;
> namespace {
>
> ErrorOr<int> t1() {return 1;}
> -ErrorOr<int> t2() { return std::errc::invalid_argument; }
> +ErrorOr<int> t2() { return errc::invalid_argument; }
>
> TEST(ErrorOr, SimpleValue) {
> ErrorOr<int> a = t1();
> @@ -30,7 +31,7 @@ TEST(ErrorOr, SimpleValue) {
>
> a = t2();
> EXPECT_FALSE(a);
> - EXPECT_EQ(std::errc::invalid_argument, a.getError());
> + EXPECT_EQ(a.getError(), errc::invalid_argument);
> #ifdef EXPECT_DEBUG_DEATH
> EXPECT_DEBUG_DEATH(*a, "Cannot get value when an error exists");
> #endif
>
> Modified: llvm/trunk/unittests/Support/Path.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/Support/Path.cpp?rev=210920&r1=210919&r2=210920&view=diff
> ==============================================================================
> --- llvm/trunk/unittests/Support/Path.cpp (original)
> +++ llvm/trunk/unittests/Support/Path.cpp Fri Jun 13 12:20:48 2014
> @@ -8,6 +8,7 @@
> //===----------------------------------------------------------------------===//
>
> #include "llvm/Support/Path.h"
> +#include "llvm/Support/Errc.h"
> #include "llvm/Support/ErrorHandling.h"
> #include "llvm/Support/FileSystem.h"
> #include "llvm/Support/MemoryBuffer.h"
> @@ -355,10 +356,10 @@ TEST_F(FileSystemTest, TempFiles) {
> ASSERT_NO_ERROR(fs::remove(Twine(TempPath2)));
> ASSERT_NO_ERROR(fs::remove(Twine(TempPath2)));
> ASSERT_EQ(fs::remove(Twine(TempPath2), false),
> - std::errc::no_such_file_or_directory);
> + errc::no_such_file_or_directory);
>
> std::error_code EC = fs::status(TempPath2.c_str(), B);
> - EXPECT_EQ(EC, std::errc::no_such_file_or_directory);
> + EXPECT_EQ(EC, errc::no_such_file_or_directory);
> EXPECT_EQ(B.type(), fs::file_type::file_not_found);
>
> // Make sure Temp2 doesn't exist.
> @@ -398,7 +399,7 @@ TEST_F(FileSystemTest, TempFiles) {
> "abcdefghijklmnopqrstuvwxyz3abcdefghijklmnopqrstuvwxyz2"
> "abcdefghijklmnopqrstuvwxyz1abcdefghijklmnopqrstuvwxyz0";
> EXPECT_EQ(fs::createUniqueFile(Twine(Path270), FileDescriptor,
> TempPath),
> - std::errc::no_such_file_or_directory);
> + errc::no_such_file_or_directory);
> #endif
> }
>
> @@ -406,7 +407,7 @@ TEST_F(FileSystemTest, CreateDir) {
> ASSERT_NO_ERROR(fs::create_directory(Twine(TestDirectory) +
> "foo"));
> ASSERT_NO_ERROR(fs::create_directory(Twine(TestDirectory) +
> "foo"));
> ASSERT_EQ(fs::create_directory(Twine(TestDirectory) + "foo",
> false),
> - std::errc::file_exists);
> + errc::file_exists);
> ASSERT_NO_ERROR(fs::remove(Twine(TestDirectory) + "foo"));
> }
>
>
> Modified: llvm/trunk/unittests/Transforms/DebugIR/DebugIR.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/Transforms/DebugIR/DebugIR.cpp?rev=210920&r1=210919&r2=210920&view=diff
> ==============================================================================
> --- llvm/trunk/unittests/Transforms/DebugIR/DebugIR.cpp (original)
> +++ llvm/trunk/unittests/Transforms/DebugIR/DebugIR.cpp Fri Jun 13
> 12:20:48 2014
> @@ -18,6 +18,7 @@
> #include "llvm/IR/DIBuilder.h"
> #include "llvm/IR/DebugInfo.h"
> #include "llvm/IR/Module.h"
> +#include "llvm/Support/Errc.h"
> #include "llvm/Support/FileSystem.h"
> #include "llvm/Support/Host.h"
> #include "llvm/Support/Path.h"
> @@ -58,7 +59,7 @@ bool removeIfExists(StringRef Path) {
> // This is an approximation, on error we don't know in general if
> the file
> // existed or not.
> std::error_code EC = sys::fs::remove(Path, false);
> - return EC != std::errc::no_such_file_or_directory;
> + return EC != llvm::errc::no_such_file_or_directory;
> }
>
> char * current_dir() {
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>
--
Hal Finkel
Assistant Computational Scientist
Leadership Computing Facility
Argonne National Laboratory
More information about the llvm-commits
mailing list