mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-21 21:29:41 +00:00
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@239683 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
4692cb1303
commit
803fe19680
@ -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;
|
||||
}
|
||||
|
@ -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)
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -67,8 +67,8 @@ TEST(ErrorOr, Covariant) {
|
||||
}
|
||||
|
||||
TEST(ErrorOr, Comparison) {
|
||||
ErrorOr<int> x(std::errc::no_such_file_or_directory);
|
||||
EXPECT_EQ(x, std::errc::no_such_file_or_directory);
|
||||
ErrorOr<int> x(errc::no_such_file_or_directory);
|
||||
EXPECT_EQ(x, errc::no_such_file_or_directory);
|
||||
}
|
||||
|
||||
// ErrorOr<int*> x(nullptr);
|
||||
|
Loading…
x
Reference in New Issue
Block a user