summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-readobj/llvm-readobj.cpp
diff options
context:
space:
mode:
authorZachary Turner <zturner@google.com>2016-09-09 17:46:17 +0000
committerZachary Turner <zturner@google.com>2016-09-09 17:46:17 +0000
commitc6d54da891b5b7f6634d41a1c59eab4d5e226711 (patch)
tree5d14cccb65e640255902a1280afc4ff91ee13245 /llvm/tools/llvm-readobj/llvm-readobj.cpp
parentd938dfb308fe288605c6a24773ab77db8334c54a (diff)
downloadbcm5719-llvm-c6d54da891b5b7f6634d41a1c59eab4d5e226711.tar.gz
bcm5719-llvm-c6d54da891b5b7f6634d41a1c59eab4d5e226711.zip
[pdb] Write PDB TPI Stream from Yaml.
This writes the full sequence of type records described in Yaml to the TPI stream of the PDB file. Reviewed By: rnk Differential Revision: https://reviews.llvm.org/D24316 llvm-svn: 281063
Diffstat (limited to 'llvm/tools/llvm-readobj/llvm-readobj.cpp')
-rw-r--r--llvm/tools/llvm-readobj/llvm-readobj.cpp13
1 files changed, 10 insertions, 3 deletions
diff --git a/llvm/tools/llvm-readobj/llvm-readobj.cpp b/llvm/tools/llvm-readobj/llvm-readobj.cpp
index 53d6782a671..ab51b64fd8c 100644
--- a/llvm/tools/llvm-readobj/llvm-readobj.cpp
+++ b/llvm/tools/llvm-readobj/llvm-readobj.cpp
@@ -331,8 +331,15 @@ static bool isMipsArch(unsigned Arch) {
return false;
}
}
+namespace {
+struct TypeTableBuilder {
+ TypeTableBuilder() : Allocator(), Builder(Allocator) {}
-static llvm::codeview::MemoryTypeTableBuilder CVTypes;
+ llvm::BumpPtrAllocator Allocator;
+ llvm::codeview::MemoryTypeTableBuilder Builder;
+};
+}
+static TypeTableBuilder CVTypes;
/// @brief Creates an format-specific object file dumper.
static std::error_code createDumper(const ObjectFile *Obj,
@@ -429,7 +436,7 @@ static void dumpObject(const ObjectFile *Obj) {
if (opts::CodeView)
Dumper->printCodeViewDebugInfo();
if (opts::CodeViewMergedTypes)
- Dumper->mergeCodeViewTypes(CVTypes);
+ Dumper->mergeCodeViewTypes(CVTypes.Builder);
}
if (Obj->isMachO()) {
if (opts::MachODataInCode)
@@ -534,7 +541,7 @@ int main(int argc, const char *argv[]) {
if (opts::CodeViewMergedTypes) {
ScopedPrinter W(outs());
- dumpCodeViewMergedTypes(W, CVTypes);
+ dumpCodeViewMergedTypes(W, CVTypes.Builder);
}
return 0;
OpenPOWER on IntegriCloud