diff options
author | Reid Kleckner <rnk@google.com> | 2016-01-13 19:32:35 +0000 |
---|---|---|
committer | Reid Kleckner <rnk@google.com> | 2016-01-13 19:32:35 +0000 |
commit | 72e2ba7abb17a5d509df45451c546b9ac5de743f (patch) | |
tree | 209f68da6cef60b984bf971da7dfbbafba07a128 /llvm/tools/llvm-readobj/StreamWriter.h | |
parent | a39ca601262f2709c5b936a25f3d99c35dc84411 (diff) | |
download | bcm5719-llvm-72e2ba7abb17a5d509df45451c546b9ac5de743f.tar.gz bcm5719-llvm-72e2ba7abb17a5d509df45451c546b9ac5de743f.zip |
[readobj] Expand CodeView dumping functionality
This rewrites and expands the existing codeview dumping functionality in
llvm-readobj using techniques similar to those in lib/Object. This defines a
number of new records and enums useful for reading memory mapped codeview
sections in COFF objects.
The dumper is intended as a testing tool for LLVM as it grows more codeview
output capabilities.
Reviewers: majnemer
Differential Revision: http://reviews.llvm.org/D16104
llvm-svn: 257658
Diffstat (limited to 'llvm/tools/llvm-readobj/StreamWriter.h')
-rw-r--r-- | llvm/tools/llvm-readobj/StreamWriter.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/llvm/tools/llvm-readobj/StreamWriter.h b/llvm/tools/llvm-readobj/StreamWriter.h index d2dbb07af25..08aa519e8ef 100644 --- a/llvm/tools/llvm-readobj/StreamWriter.h +++ b/llvm/tools/llvm-readobj/StreamWriter.h @@ -10,6 +10,7 @@ #ifndef LLVM_TOOLS_LLVM_READOBJ_STREAMWRITER_H #define LLVM_TOOLS_LLVM_READOBJ_STREAMWRITER_H +#include "llvm/ADT/APSInt.h" #include "llvm/ADT/ArrayRef.h" #include "llvm/ADT/SmallVector.h" #include "llvm/ADT/StringRef.h" @@ -180,6 +181,10 @@ public: startLine() << Label << ": " << int(Value) << "\n"; } + void printNumber(StringRef Label, APSInt Value) { + startLine() << Label << ": " << Value << "\n"; + } + void printBoolean(StringRef Label, bool Value) { startLine() << Label << ": " << (Value ? "Yes" : "No") << '\n'; } @@ -287,6 +292,12 @@ private: int IndentLevel; }; +template <> +inline void StreamWriter::printHex<ulittle16_t>(StringRef Label, + ulittle16_t Value) { + startLine() << Label << ": " << hex(Value) << "\n"; +} + struct DictScope { DictScope(StreamWriter& W, StringRef N) : W(W) { W.startLine() << N << " {\n"; |