diff options
Diffstat (limited to 'llvm/tools/llvm-readobj/llvm-readobj.cpp')
-rw-r--r-- | llvm/tools/llvm-readobj/llvm-readobj.cpp | 13 |
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; |