aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/llvm/Support/raw_ostream.h3
-rw-r--r--lib/Support/raw_ostream.cpp11
2 files changed, 10 insertions, 4 deletions
diff --git a/include/llvm/Support/raw_ostream.h b/include/llvm/Support/raw_ostream.h
index c8744d2..09ee030 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 20e50ef..e3ab0c6 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<unsigned long long>(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);