summaryrefslogtreecommitdiffstats
path: root/llvm/lib/DebugInfo/CodeView/ModuleDebugFragment.cpp
diff options
context:
space:
mode:
authorZachary Turner <zturner@google.com>2017-04-27 16:12:16 +0000
committerZachary Turner <zturner@google.com>2017-04-27 16:12:16 +0000
commitc37cb0c6a5c266f102c130bfe1daaa25329cb997 (patch)
tree48cd2b14c7b818b9b1a6eec14ae4518ee2dc195d /llvm/lib/DebugInfo/CodeView/ModuleDebugFragment.cpp
parente5094474187a9b748589aa709c3e1e172d42e87f (diff)
downloadbcm5719-llvm-c37cb0c6a5c266f102c130bfe1daaa25329cb997.tar.gz
bcm5719-llvm-c37cb0c6a5c266f102c130bfe1daaa25329cb997.zip
[CodeView] Isolate Debug Info Fragments into standalone classes.
Previously parsing of these were all grouped together into a single master class that could parse any type of debug info fragment. With writing forthcoming, the complexity of each individual fragment is enough to warrant them having their own classes so that reading and writing of each fragment type can be grouped together, but isolated from the code for reading and writing other fragment types. In doing so, I found a place where parsing code was duplicated for the FileChecksums fragment, across llvm-readobj and the CodeView library, and one of the implementations had a bug. Now that the codepaths are merged, the bug is resolved. Differential Revision: https://reviews.llvm.org/D32547 llvm-svn: 301557
Diffstat (limited to 'llvm/lib/DebugInfo/CodeView/ModuleDebugFragment.cpp')
-rw-r--r--llvm/lib/DebugInfo/CodeView/ModuleDebugFragment.cpp36
1 files changed, 2 insertions, 34 deletions
diff --git a/llvm/lib/DebugInfo/CodeView/ModuleDebugFragment.cpp b/llvm/lib/DebugInfo/CodeView/ModuleDebugFragment.cpp
index 1329f8cc8f6..a3327b06b98 100644
--- a/llvm/lib/DebugInfo/CodeView/ModuleDebugFragment.cpp
+++ b/llvm/lib/DebugInfo/CodeView/ModuleDebugFragment.cpp
@@ -1,5 +1,4 @@
-//===- ModuleDebugFragment.cpp --------------------------------------*- C++
-//-*-===//
+//===- ModuleDebugFragment.cpp -----------------------------------*- C++-*-===//
//
// The LLVM Compiler Infrastructure
//
@@ -10,37 +9,6 @@
#include "llvm/DebugInfo/CodeView/ModuleDebugFragment.h"
-#include "llvm/Support/BinaryStreamReader.h"
-
-using namespace llvm;
using namespace llvm::codeview;
-ModuleDebugFragment::ModuleDebugFragment()
- : Kind(ModuleDebugFragmentKind::None) {}
-
-ModuleDebugFragment::ModuleDebugFragment(ModuleDebugFragmentKind Kind,
- BinaryStreamRef Data)
- : Kind(Kind), Data(Data) {}
-
-Error ModuleDebugFragment::initialize(BinaryStreamRef Stream,
- ModuleDebugFragment &Info) {
- const ModuleDebugFragmentHeader *Header;
- BinaryStreamReader Reader(Stream);
- if (auto EC = Reader.readObject(Header))
- return EC;
-
- ModuleDebugFragmentKind Kind =
- static_cast<ModuleDebugFragmentKind>(uint32_t(Header->Kind));
- if (auto EC = Reader.readStreamRef(Info.Data, Header->Length))
- return EC;
- Info.Kind = Kind;
- return Error::success();
-}
-
-uint32_t ModuleDebugFragment::getRecordLength() const {
- return sizeof(ModuleDebugFragmentHeader) + Data.getLength();
-}
-
-ModuleDebugFragmentKind ModuleDebugFragment::kind() const { return Kind; }
-
-BinaryStreamRef ModuleDebugFragment::getRecordData() const { return Data; }
+ModuleDebugFragment::~ModuleDebugFragment() {}
OpenPOWER on IntegriCloud