Add raw_ostream::write_hex

llvm-svn: 77614
This commit is contained in:
Daniel Dunbar 2009-07-30 18:21:23 +00:00
parent 3db25114f0
commit 79e9ed1d26
2 changed files with 10 additions and 4 deletions

View File

@ -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);

View File

@ -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);