[llvm] r368854 - Revert "raw_ostream: add operator<< overload for std::error_code"
Pavel Labath via llvm-commits
llvm-commits at lists.llvm.org
Wed Aug 14 06:59:04 PDT 2019
Author: labath
Date: Wed Aug 14 06:59:04 2019
New Revision: 368854
URL: http://llvm.org/viewvc/llvm-project?rev=368854&view=rev
Log:
Revert "raw_ostream: add operator<< overload for std::error_code"
This reverts commit r368849, because it breaks some bots (e.g.
llvm-clang-x86_64-win-fast).
It turns out this is not as NFC as we had hoped, because operator== will
consider two std::error_codes to be distinct even though they both hold
"success" values if they have different categories.
Modified:
llvm/trunk/include/llvm/Support/raw_ostream.h
llvm/trunk/lib/Support/raw_ostream.cpp
llvm/trunk/unittests/BinaryFormat/TestFileMagic.cpp
llvm/trunk/unittests/Support/ErrorTest.cpp
llvm/trunk/unittests/Support/FileOutputBufferTest.cpp
llvm/trunk/unittests/Support/Host.cpp
llvm/trunk/unittests/Support/Path.cpp
llvm/trunk/unittests/Support/ProgramTest.cpp
llvm/trunk/unittests/Support/ReplaceFileTest.cpp
llvm/trunk/unittests/Support/raw_pwrite_stream_test.cpp
Modified: llvm/trunk/include/llvm/Support/raw_ostream.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Support/raw_ostream.h?rev=368854&r1=368853&r2=368854&view=diff
==============================================================================
--- llvm/trunk/include/llvm/Support/raw_ostream.h (original)
+++ llvm/trunk/include/llvm/Support/raw_ostream.h Wed Aug 14 06:59:04 2019
@@ -223,8 +223,6 @@ public:
raw_ostream &operator<<(double N);
- raw_ostream &operator<<(std::error_code EC);
-
/// Output \p N in hexadecimal, without any prefix or padding.
raw_ostream &write_hex(unsigned long long N);
Modified: llvm/trunk/lib/Support/raw_ostream.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/raw_ostream.cpp?rev=368854&r1=368853&r2=368854&view=diff
==============================================================================
--- llvm/trunk/lib/Support/raw_ostream.cpp (original)
+++ llvm/trunk/lib/Support/raw_ostream.cpp Wed Aug 14 06:59:04 2019
@@ -139,11 +139,6 @@ raw_ostream &raw_ostream::operator<<(lon
return *this;
}
-raw_ostream &raw_ostream::operator<<(std::error_code EC) {
- return *this << EC.message() << " (" << EC.category().name() << ':'
- << EC.value() << ')';
-}
-
raw_ostream &raw_ostream::write_hex(unsigned long long N) {
llvm::write_hex(*this, N, HexPrintStyle::Lower);
return *this;
Modified: llvm/trunk/unittests/BinaryFormat/TestFileMagic.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/BinaryFormat/TestFileMagic.cpp?rev=368854&r1=368853&r2=368854&view=diff
==============================================================================
--- llvm/trunk/unittests/BinaryFormat/TestFileMagic.cpp (original)
+++ llvm/trunk/unittests/BinaryFormat/TestFileMagic.cpp Wed Aug 14 06:59:04 2019
@@ -17,7 +17,16 @@
using namespace llvm;
namespace fs = llvm::sys::fs;
-#define ASSERT_NO_ERROR(x) ASSERT_EQ(x, std::error_code())
+#define ASSERT_NO_ERROR(x) \
+ if (std::error_code ASSERT_NO_ERROR_ec = x) { \
+ SmallString<128> MessageStorage; \
+ raw_svector_ostream Message(MessageStorage); \
+ Message << #x ": did not return errc::success.\n" \
+ << "error number: " << ASSERT_NO_ERROR_ec.value() << "\n" \
+ << "error message: " << ASSERT_NO_ERROR_ec.message() << "\n"; \
+ GTEST_FATAL_FAILURE_(MessageStorage.c_str()); \
+ } else { \
+ }
class MagicTest : public testing::Test {
protected:
Modified: llvm/trunk/unittests/Support/ErrorTest.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/Support/ErrorTest.cpp?rev=368854&r1=368853&r2=368854&view=diff
==============================================================================
--- llvm/trunk/unittests/Support/ErrorTest.cpp (original)
+++ llvm/trunk/unittests/Support/ErrorTest.cpp Wed Aug 14 06:59:04 2019
@@ -933,7 +933,7 @@ public:
class TestErrorCategory : public std::error_category {
public:
- const char *name() const noexcept override { return "test_error"; }
+ const char *name() const noexcept override { return "error"; }
std::string message(int Condition) const override {
switch (static_cast<test_error_code>(Condition)) {
case test_error_code::unspecified:
@@ -975,11 +975,4 @@ TEST(Error, SubtypeStringErrorTest) {
0);
}
-TEST(Error, error_codeErrorMessageTest) {
- EXPECT_NONFATAL_FAILURE(
- EXPECT_EQ(make_error_code(test_error_code::unspecified),
- make_error_code(test_error_code::error_2)),
- "Which is: An unknown error has occurred. (test_error:1)");
-}
-
} // namespace
Modified: llvm/trunk/unittests/Support/FileOutputBufferTest.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/Support/FileOutputBufferTest.cpp?rev=368854&r1=368853&r2=368854&view=diff
==============================================================================
--- llvm/trunk/unittests/Support/FileOutputBufferTest.cpp (original)
+++ llvm/trunk/unittests/Support/FileOutputBufferTest.cpp Wed Aug 14 06:59:04 2019
@@ -18,7 +18,16 @@
using namespace llvm;
using namespace llvm::sys;
-#define ASSERT_NO_ERROR(x) ASSERT_EQ(x, std::error_code())
+#define ASSERT_NO_ERROR(x) \
+ if (std::error_code ASSERT_NO_ERROR_ec = x) { \
+ SmallString<128> MessageStorage; \
+ raw_svector_ostream Message(MessageStorage); \
+ Message << #x ": did not return errc::success.\n" \
+ << "error number: " << ASSERT_NO_ERROR_ec.value() << "\n" \
+ << "error message: " << ASSERT_NO_ERROR_ec.message() << "\n"; \
+ GTEST_FATAL_FAILURE_(MessageStorage.c_str()); \
+ } else { \
+ }
namespace {
TEST(FileOutputBuffer, Test) {
Modified: llvm/trunk/unittests/Support/Host.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/Support/Host.cpp?rev=368854&r1=368853&r2=368854&view=diff
==============================================================================
--- llvm/trunk/unittests/Support/Host.cpp (original)
+++ llvm/trunk/unittests/Support/Host.cpp Wed Aug 14 06:59:04 2019
@@ -16,7 +16,16 @@
#include "gtest/gtest.h"
-#define ASSERT_NO_ERROR(x) ASSERT_EQ(x, std::error_code())
+#define ASSERT_NO_ERROR(x) \
+ if (std::error_code ASSERT_NO_ERROR_ec = x) { \
+ SmallString<128> MessageStorage; \
+ raw_svector_ostream Message(MessageStorage); \
+ Message << #x ": did not return errc::success.\n" \
+ << "error number: " << ASSERT_NO_ERROR_ec.value() << "\n" \
+ << "error message: " << ASSERT_NO_ERROR_ec.message() << "\n"; \
+ GTEST_FATAL_FAILURE_(MessageStorage.c_str()); \
+ } else { \
+ }
using namespace llvm;
Modified: llvm/trunk/unittests/Support/Path.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/Support/Path.cpp?rev=368854&r1=368853&r2=368854&view=diff
==============================================================================
--- llvm/trunk/unittests/Support/Path.cpp (original)
+++ llvm/trunk/unittests/Support/Path.cpp Wed Aug 14 06:59:04 2019
@@ -38,8 +38,24 @@
using namespace llvm;
using namespace llvm::sys;
-#define ASSERT_NO_ERROR(x) ASSERT_EQ(x, std::error_code())
-#define ASSERT_ERROR(x) ASSERT_NE(x, std::error_code())
+#define ASSERT_NO_ERROR(x) \
+ if (std::error_code ASSERT_NO_ERROR_ec = x) { \
+ SmallString<128> MessageStorage; \
+ raw_svector_ostream Message(MessageStorage); \
+ Message << #x ": did not return errc::success.\n" \
+ << "error number: " << ASSERT_NO_ERROR_ec.value() << "\n" \
+ << "error message: " << ASSERT_NO_ERROR_ec.message() << "\n"; \
+ GTEST_FATAL_FAILURE_(MessageStorage.c_str()); \
+ } else { \
+ }
+
+#define ASSERT_ERROR(x) \
+ if (!x) { \
+ SmallString<128> MessageStorage; \
+ raw_svector_ostream Message(MessageStorage); \
+ Message << #x ": did not return a failure error code.\n"; \
+ GTEST_FATAL_FAILURE_(MessageStorage.c_str()); \
+ }
namespace {
@@ -1249,7 +1265,7 @@ TEST_F(FileSystemTest, OpenFileForRead)
int FileDescriptor2;
SmallString<64> ResultPath;
ASSERT_NO_ERROR(fs::openFileForRead(Twine(TempPath), FileDescriptor2,
- fs::OF_None, &ResultPath));
+ fs::OF_None, &ResultPath))
// If we succeeded, check that the paths are the same (modulo case):
if (!ResultPath.empty()) {
Modified: llvm/trunk/unittests/Support/ProgramTest.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/Support/ProgramTest.cpp?rev=368854&r1=368853&r2=368854&view=diff
==============================================================================
--- llvm/trunk/unittests/Support/ProgramTest.cpp (original)
+++ llvm/trunk/unittests/Support/ProgramTest.cpp Wed Aug 14 06:59:04 2019
@@ -35,8 +35,16 @@ void sleep_for(unsigned int seconds) {
#error sleep_for is not implemented on your platform.
#endif
-#define ASSERT_NO_ERROR(x) ASSERT_EQ(x, std::error_code())
-
+#define ASSERT_NO_ERROR(x) \
+ if (std::error_code ASSERT_NO_ERROR_ec = x) { \
+ SmallString<128> MessageStorage; \
+ raw_svector_ostream Message(MessageStorage); \
+ Message << #x ": did not return errc::success.\n" \
+ << "error number: " << ASSERT_NO_ERROR_ec.value() << "\n" \
+ << "error message: " << ASSERT_NO_ERROR_ec.message() << "\n"; \
+ GTEST_FATAL_FAILURE_(MessageStorage.c_str()); \
+ } else { \
+ }
// From TestMain.cpp.
extern const char *TestMainArgv0;
Modified: llvm/trunk/unittests/Support/ReplaceFileTest.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/Support/ReplaceFileTest.cpp?rev=368854&r1=368853&r2=368854&view=diff
==============================================================================
--- llvm/trunk/unittests/Support/ReplaceFileTest.cpp (original)
+++ llvm/trunk/unittests/Support/ReplaceFileTest.cpp Wed Aug 14 06:59:04 2019
@@ -17,7 +17,14 @@
using namespace llvm;
using namespace llvm::sys;
-#define ASSERT_NO_ERROR(x) ASSERT_EQ(x, std::error_code())
+#define ASSERT_NO_ERROR(x) \
+ do { \
+ if (std::error_code ASSERT_NO_ERROR_ec = x) { \
+ errs() << #x ": did not return errc::success.\n" \
+ << "error number: " << ASSERT_NO_ERROR_ec.value() << "\n" \
+ << "error message: " << ASSERT_NO_ERROR_ec.message() << "\n"; \
+ } \
+ } while (false)
namespace {
std::error_code CreateFileWithContent(const SmallString<128> &FilePath,
Modified: llvm/trunk/unittests/Support/raw_pwrite_stream_test.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/Support/raw_pwrite_stream_test.cpp?rev=368854&r1=368853&r2=368854&view=diff
==============================================================================
--- llvm/trunk/unittests/Support/raw_pwrite_stream_test.cpp (original)
+++ llvm/trunk/unittests/Support/raw_pwrite_stream_test.cpp Wed Aug 14 06:59:04 2019
@@ -15,7 +15,16 @@
using namespace llvm;
-#define ASSERT_NO_ERROR(x) ASSERT_EQ(x, std::error_code())
+#define ASSERT_NO_ERROR(x) \
+ if (std::error_code ASSERT_NO_ERROR_ec = x) { \
+ SmallString<128> MessageStorage; \
+ raw_svector_ostream Message(MessageStorage); \
+ Message << #x ": did not return errc::success.\n" \
+ << "error number: " << ASSERT_NO_ERROR_ec.value() << "\n" \
+ << "error message: " << ASSERT_NO_ERROR_ec.message() << "\n"; \
+ GTEST_FATAL_FAILURE_(MessageStorage.c_str()); \
+ } else { \
+ }
namespace {
More information about the llvm-commits
mailing list