From 10f1733d9a5cf39f7010bc8b29c3bb4d63a383fa Mon Sep 17 00:00:00 2001 From: Dan Gohman Date: Tue, 30 Jun 2009 20:10:56 +0000 Subject: [PATCH] Reapply 74494, this time removing the conflicting definition of operator<< in APIntTest.cpp. llvm-svn: 74550 --- llvm/include/llvm/ADT/APInt.h | 2 ++ llvm/lib/Support/APInt.cpp | 6 ++++++ llvm/unittests/ADT/APIntTest.cpp | 13 ------------- 3 files changed, 8 insertions(+), 13 deletions(-) diff --git a/llvm/include/llvm/ADT/APInt.h b/llvm/include/llvm/ADT/APInt.h index 63bf4f6d9ba0..56cd3ccf84e3 100644 --- a/llvm/include/llvm/ADT/APInt.h +++ b/llvm/include/llvm/ADT/APInt.h @@ -1426,6 +1426,8 @@ inline raw_ostream &operator<<(raw_ostream &OS, const APInt &I) { return OS; } +std::ostream &operator<<(std::ostream &o, const APInt &I); + namespace APIntOps { /// @brief Determine the smaller of two APInts considered to be signed. diff --git a/llvm/lib/Support/APInt.cpp b/llvm/lib/Support/APInt.cpp index 73bf774b1717..30dc3526abd4 100644 --- a/llvm/lib/Support/APInt.cpp +++ b/llvm/lib/Support/APInt.cpp @@ -2178,6 +2178,12 @@ void APInt::print(raw_ostream &OS, bool isSigned) const { OS << S.c_str(); } +std::ostream &llvm::operator<<(std::ostream &o, const APInt &I) { + raw_os_ostream OS(o); + OS << I; + return o; +} + // This implements a variety of operations on a representation of // arbitrary precision, two's-complement, bignum integer values. diff --git a/llvm/unittests/ADT/APIntTest.cpp b/llvm/unittests/ADT/APIntTest.cpp index 8ff7d1d8099d..648faf13ad81 100644 --- a/llvm/unittests/ADT/APIntTest.cpp +++ b/llvm/unittests/ADT/APIntTest.cpp @@ -17,19 +17,6 @@ using namespace llvm; namespace { -// Make the Google Test failure output equivalent to APInt::dump() -std::ostream& operator<<(std::ostream &OS, const llvm::APInt& I) { - llvm::raw_os_ostream raw_os(OS); - - SmallString<40> S, U; - I.toStringUnsigned(U); - I.toStringSigned(S); - raw_os << "APInt(" << I.getBitWidth()<< "b, " - << U.c_str() << "u " << S.c_str() << "s)"; - raw_os.flush(); - return OS; -} - // Test that APInt shift left works when bitwidth > 64 and shiftamt == 0 TEST(APIntTest, ShiftLeftByZero) { APInt One = APInt::getNullValue(65) + 1;