mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-10-20 09:24:58 +00:00
Implement operator<< in terms of basic types rather than [u]int*_t, which is better for portability. There might be some way to factor this all with metaprogramming magic, but I'm not sure how offhand.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55114 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
5d52c4501a
commit
89a1a85913
@ -77,7 +77,7 @@ public:
|
|||||||
return write(Str.data(), Str.length());
|
return write(Str.data(), Str.length());
|
||||||
}
|
}
|
||||||
|
|
||||||
raw_ostream &operator<<(uint64_t N) {
|
raw_ostream &operator<<(unsigned long N) {
|
||||||
// Zero is a special case.
|
// Zero is a special case.
|
||||||
if (N == 0)
|
if (N == 0)
|
||||||
return *this << '0';
|
return *this << '0';
|
||||||
@ -93,7 +93,7 @@ public:
|
|||||||
return write(CurPtr, EndPtr-CurPtr);
|
return write(CurPtr, EndPtr-CurPtr);
|
||||||
}
|
}
|
||||||
|
|
||||||
raw_ostream &operator<<(int64_t N) {
|
raw_ostream &operator<<(long N) {
|
||||||
if (N < 0) {
|
if (N < 0) {
|
||||||
if (OutBufCur >= OutBufEnd)
|
if (OutBufCur >= OutBufEnd)
|
||||||
flush_impl();
|
flush_impl();
|
||||||
@ -102,15 +102,43 @@ public:
|
|||||||
N = -N;
|
N = -N;
|
||||||
}
|
}
|
||||||
|
|
||||||
return this->operator<<(static_cast<uint64_t>(N));
|
return this->operator<<(static_cast<unsigned long>(N));
|
||||||
}
|
}
|
||||||
|
|
||||||
raw_ostream &operator<<(uint32_t N) {
|
raw_ostream &operator<<(unsigned long long N) {
|
||||||
return this->operator<<(static_cast<uint64_t>(N));
|
// Zero is a special case.
|
||||||
|
if (N == 0)
|
||||||
|
return *this << '0';
|
||||||
|
|
||||||
|
char NumberBuffer[20];
|
||||||
|
char *EndPtr = NumberBuffer+sizeof(NumberBuffer);
|
||||||
|
char *CurPtr = EndPtr;
|
||||||
|
|
||||||
|
while (N) {
|
||||||
|
*--CurPtr = '0' + char(N % 10);
|
||||||
|
N /= 10;
|
||||||
|
}
|
||||||
|
return write(CurPtr, EndPtr-CurPtr);
|
||||||
}
|
}
|
||||||
|
|
||||||
raw_ostream &operator<<(int32_t N) {
|
raw_ostream &operator<<(long long N) {
|
||||||
return this->operator<<(static_cast<int64_t>(N));
|
if (N < 0) {
|
||||||
|
if (OutBufCur >= OutBufEnd)
|
||||||
|
flush_impl();
|
||||||
|
*OutBufCur++ = '-';
|
||||||
|
|
||||||
|
N = -N;
|
||||||
|
}
|
||||||
|
|
||||||
|
return this->operator<<(static_cast<unsigned long long>(N));
|
||||||
|
}
|
||||||
|
|
||||||
|
raw_ostream &operator<<(unsigned int N) {
|
||||||
|
return this->operator<<(static_cast<unsigned long>(N));
|
||||||
|
}
|
||||||
|
|
||||||
|
raw_ostream &operator<<(int N) {
|
||||||
|
return this->operator<<(static_cast<long>(N));
|
||||||
}
|
}
|
||||||
|
|
||||||
raw_ostream &operator<<(double N) {
|
raw_ostream &operator<<(double N) {
|
||||||
|
Loading…
Reference in New Issue
Block a user