summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-readobj/StreamWriter.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/tools/llvm-readobj/StreamWriter.cpp')
-rw-r--r--llvm/tools/llvm-readobj/StreamWriter.cpp29
1 files changed, 14 insertions, 15 deletions
diff --git a/llvm/tools/llvm-readobj/StreamWriter.cpp b/llvm/tools/llvm-readobj/StreamWriter.cpp
index 871811233a6..390b05e358d 100644
--- a/llvm/tools/llvm-readobj/StreamWriter.cpp
+++ b/llvm/tools/llvm-readobj/StreamWriter.cpp
@@ -8,23 +8,22 @@ using namespace llvm::support;
namespace llvm {
raw_ostream &operator<<(raw_ostream &OS, const HexNumber& Value) {
- uint64_t N = Value.Value;
- // Zero is a special case.
- if (N == 0)
- return OS << "0x0";
-
- char NumberBuffer[20];
- char *EndPtr = NumberBuffer + sizeof(NumberBuffer);
- char *CurPtr = EndPtr;
+ OS << "0x" << to_hexString(Value.Value);
+ return OS;
+}
- while (N) {
- uintptr_t X = N % 16;
- *--CurPtr = (X < 10 ? '0' + X : 'A' + X - 10);
- N /= 16;
- }
+const std::string to_hexString(uint64_t Value, bool UpperCase) {
+ std::string number;
+ llvm::raw_string_ostream stream(number);
+ stream << format_hex_no_prefix(Value, 1, UpperCase);
+ return stream.str();
+}
- OS << "0x";
- return OS.write(CurPtr, EndPtr - CurPtr);
+const std::string to_string(uint64_t Value) {
+ std::string number;
+ llvm::raw_string_ostream stream(number);
+ stream << format_decimal(Value, 1);
+ return stream.str();
}
void StreamWriter::printBinaryImpl(StringRef Label, StringRef Str,
OpenPOWER on IntegriCloud