diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2015-06-13 17:23:04 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2015-06-13 17:23:04 +0000 |
commit | 74f293249d9e60e3631fc8b08148ef3d8a4df72d (patch) | |
tree | 8d85e53c7147f1a63ef6acee449d99283dedf5b9 /llvm/lib | |
parent | d3f64274462e500724ae2df9d7b590094eff87b4 (diff) | |
download | bcm5719-llvm-74f293249d9e60e3631fc8b08148ef3d8a4df72d.tar.gz bcm5719-llvm-74f293249d9e60e3631fc8b08148ef3d8a4df72d.zip |
Don't use std::errc.
As noted on Errc.h:
// * 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.
And on some libstdc++ those virtual functions conclude that
------------------------
int main() {
std::error_code foo = std::make_error_code(std::errc::no_such_file_or_directory);
return foo == std::errc::no_such_file_or_directory;
}
-------------------------
should exit with 0.
llvm-svn: 239683
Diffstat (limited to 'llvm/lib')
-rw-r--r-- | llvm/lib/Object/ArchiveWriter.cpp | 3 | ||||
-rw-r--r-- | llvm/lib/ProfileData/CoverageMapping.cpp | 5 | ||||
-rw-r--r-- | llvm/lib/Support/Unix/Program.inc | 5 | ||||
-rw-r--r-- | llvm/lib/Support/Windows/Program.inc | 3 |
4 files changed, 10 insertions, 6 deletions
diff --git a/llvm/lib/Object/ArchiveWriter.cpp b/llvm/lib/Object/ArchiveWriter.cpp index 90a736f3baf..dcd6ad73e23 100644 --- a/llvm/lib/Object/ArchiveWriter.cpp +++ b/llvm/lib/Object/ArchiveWriter.cpp @@ -18,6 +18,7 @@ #include "llvm/Object/Archive.h" #include "llvm/Object/ObjectFile.h" #include "llvm/Object/SymbolicFile.h" +#include "llvm/Support/Errc.h" #include "llvm/Support/ErrorHandling.h" #include "llvm/Support/Format.h" #include "llvm/Support/Path.h" @@ -70,7 +71,7 @@ NewArchiveIterator::getFD(sys::fs::file_status &NewStatus) const { // Linux cannot open directories with open(2), although // cygwin and *bsd can. if (NewStatus.type() == sys::fs::file_type::directory_file) - return make_error_code(std::errc::is_a_directory); + return make_error_code(errc::is_a_directory); return NewFD; } diff --git a/llvm/lib/ProfileData/CoverageMapping.cpp b/llvm/lib/ProfileData/CoverageMapping.cpp index bbac5c26b1e..0804bd05f74 100644 --- a/llvm/lib/ProfileData/CoverageMapping.cpp +++ b/llvm/lib/ProfileData/CoverageMapping.cpp @@ -19,6 +19,7 @@ #include "llvm/ProfileData/CoverageMappingReader.h" #include "llvm/ProfileData/InstrProfReader.h" #include "llvm/Support/Debug.h" +#include "llvm/Support/Errc.h" #include "llvm/Support/ErrorHandling.h" #include "llvm/Support/ManagedStatic.h" #include "llvm/Support/Path.h" @@ -154,11 +155,11 @@ ErrorOr<int64_t> CounterMappingContext::evaluate(const Counter &C) const { return 0; case Counter::CounterValueReference: if (C.getCounterID() >= CounterValues.size()) - return std::make_error_code(std::errc::argument_out_of_domain); + return make_error_code(errc::argument_out_of_domain); return CounterValues[C.getCounterID()]; case Counter::Expression: { if (C.getExpressionID() >= Expressions.size()) - return std::make_error_code(std::errc::argument_out_of_domain); + return make_error_code(errc::argument_out_of_domain); const auto &E = Expressions[C.getExpressionID()]; ErrorOr<int64_t> LHS = evaluate(E.LHS); if (!LHS) diff --git a/llvm/lib/Support/Unix/Program.inc b/llvm/lib/Support/Unix/Program.inc index 5816fb812e9..8947b62e4dc 100644 --- a/llvm/lib/Support/Unix/Program.inc +++ b/llvm/lib/Support/Unix/Program.inc @@ -20,6 +20,7 @@ #include "llvm/ADT/StringExtras.h" #include "llvm/Config/config.h" #include "llvm/Support/Compiler.h" +#include "llvm/Support/Errc.h" #include "llvm/Support/FileSystem.h" #include "llvm/Support/Path.h" #include "llvm/Support/raw_ostream.h" @@ -92,7 +93,7 @@ ErrorOr<std::string> sys::findProgramByName(StringRef Name, if (sys::fs::can_execute(FilePath.c_str())) return std::string(FilePath.str()); // Found the executable! } - return std::errc::no_such_file_or_directory; + return errc::no_such_file_or_directory; } static bool RedirectIO(const StringRef *Path, int FD, std::string* ErrMsg) { @@ -447,7 +448,7 @@ llvm::sys::writeFileWithEncoding(StringRef FileName, StringRef Contents, OS << Contents; if (OS.has_error()) - return std::make_error_code(std::errc::io_error); + return make_error_code(errc::io_error); return EC; } diff --git a/llvm/lib/Support/Windows/Program.inc b/llvm/lib/Support/Windows/Program.inc index 75685de4554..c29d8729b1d 100644 --- a/llvm/lib/Support/Windows/Program.inc +++ b/llvm/lib/Support/Windows/Program.inc @@ -14,6 +14,7 @@ #include "WindowsSupport.h" #include "llvm/ADT/StringExtras.h" #include "llvm/Support/ConvertUTF.h" +#include "llvm/Support/Errc.h" #include "llvm/Support/FileSystem.h" #include "llvm/Support/WindowsError.h" #include "llvm/Support/raw_ostream.h" @@ -514,7 +515,7 @@ llvm::sys::writeFileWithEncoding(StringRef FileName, StringRef Contents, } if (OS.has_error()) - return std::make_error_code(std::errc::io_error); + return make_error_code(errc::io_error); return EC; } |