From: Daniel Dunbar Date: Thu, 30 Jul 2009 18:21:23 +0000 (+0000) Subject: Add raw_ostream::write_hex X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=48018e08f0d47331e72e5dcfcde2173217091b0e;p=oota-llvm.git Add raw_ostream::write_hex git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77614 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/llvm/Support/raw_ostream.h b/include/llvm/Support/raw_ostream.h index c8744d2dd3d..09ee03098f4 100644 --- a/include/llvm/Support/raw_ostream.h +++ b/include/llvm/Support/raw_ostream.h @@ -198,6 +198,9 @@ public: return *this; } + /// write_hex - Output \arg N in hexadecimal, without any prefix or padding. + raw_ostream &write_hex(unsigned long long N); + raw_ostream &write(unsigned char C); raw_ostream &write(const char *Ptr, size_t Size); diff --git a/lib/Support/raw_ostream.cpp b/lib/Support/raw_ostream.cpp index 20e50efd2cc..e3ab0c688a3 100644 --- a/lib/Support/raw_ostream.cpp +++ b/lib/Support/raw_ostream.cpp @@ -113,10 +113,7 @@ raw_ostream &raw_ostream::operator<<(long long N) { return this->operator<<(static_cast(N)); } -raw_ostream &raw_ostream::operator<<(const void *P) { - uintptr_t N = (uintptr_t) P; - *this << '0' << 'x'; - +raw_ostream &raw_ostream::write_hex(unsigned long long N) { // Zero is a special case. if (N == 0) return *this << '0'; @@ -134,6 +131,12 @@ raw_ostream &raw_ostream::operator<<(const void *P) { return write(CurPtr, EndPtr-CurPtr); } +raw_ostream &raw_ostream::operator<<(const void *P) { + *this << '0' << 'x'; + + return write_hex((uintptr_t) P); +} + void raw_ostream::flush_nonempty() { assert(OutBufCur > OutBufStart && "Invalid call to flush_nonempty."); write_impl(OutBufStart, OutBufCur - OutBufStart);