summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-readobj/StreamWriter.h
diff options
context:
space:
mode:
authorReid Kleckner <rnk@google.com>2016-01-13 19:32:35 +0000
committerReid Kleckner <rnk@google.com>2016-01-13 19:32:35 +0000
commit72e2ba7abb17a5d509df45451c546b9ac5de743f (patch)
tree209f68da6cef60b984bf971da7dfbbafba07a128 /llvm/tools/llvm-readobj/StreamWriter.h
parenta39ca601262f2709c5b936a25f3d99c35dc84411 (diff)
downloadbcm5719-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.h11
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";
OpenPOWER on IntegriCloud