diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2016-07-23 20:41:05 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2016-07-23 20:41:05 +0000 |
commit | 01095a5d43bbfde13731688ddcf6048ebb8b7721 (patch) | |
tree | 4def12e759965de927d963ac65840d663ef9d1ea /lib/DebugInfo/CodeView/ModuleSubstream.cpp | |
parent | f0f4822ed4b66e3579e92a89f368f8fb860e218e (diff) |
Notes
Diffstat (limited to 'lib/DebugInfo/CodeView/ModuleSubstream.cpp')
-rw-r--r-- | lib/DebugInfo/CodeView/ModuleSubstream.cpp | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/lib/DebugInfo/CodeView/ModuleSubstream.cpp b/lib/DebugInfo/CodeView/ModuleSubstream.cpp new file mode 100644 index 000000000000..2e31ed6b5b7f --- /dev/null +++ b/lib/DebugInfo/CodeView/ModuleSubstream.cpp @@ -0,0 +1,42 @@ +//===- ModuleSubstream.cpp --------------------------------------*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +#include "llvm/DebugInfo/CodeView/ModuleSubstream.h" + +#include "llvm/DebugInfo/CodeView/StreamReader.h" + +using namespace llvm; +using namespace llvm::codeview; + +ModuleSubstream::ModuleSubstream() : Kind(ModuleSubstreamKind::None) {} + +ModuleSubstream::ModuleSubstream(ModuleSubstreamKind Kind, StreamRef Data) + : Kind(Kind), Data(Data) {} + +Error ModuleSubstream::initialize(StreamRef Stream, ModuleSubstream &Info) { + const ModuleSubsectionHeader *Header; + StreamReader Reader(Stream); + if (auto EC = Reader.readObject(Header)) + return EC; + + ModuleSubstreamKind Kind = + static_cast<ModuleSubstreamKind>(uint32_t(Header->Kind)); + if (auto EC = Reader.readStreamRef(Info.Data, Header->Length)) + return EC; + Info.Kind = Kind; + return Error::success(); +} + +uint32_t ModuleSubstream::getRecordLength() const { + return sizeof(ModuleSubsectionHeader) + Data.getLength(); +} + +ModuleSubstreamKind ModuleSubstream::getSubstreamKind() const { return Kind; } + +StreamRef ModuleSubstream::getRecordData() const { return Data; } |