summaryrefslogtreecommitdiffstats
path: root/llvm/lib/DebugInfo/PDB/Native/TpiStream.cpp
diff options
context:
space:
mode:
authorZachary Turner <zturner@google.com>2017-06-23 21:50:54 +0000
committerZachary Turner <zturner@google.com>2017-06-23 21:50:54 +0000
commitc2f5b4bfd9f09475af7162e6cced5876fb7736f8 (patch)
treef941338bc3df605ef45aa68b2477886872ee12f1 /llvm/lib/DebugInfo/PDB/Native/TpiStream.cpp
parent2c19c1be56e7b365cb893003ca896755ac3ddfff (diff)
downloadbcm5719-llvm-c2f5b4bfd9f09475af7162e6cced5876fb7736f8.tar.gz
bcm5719-llvm-c2f5b4bfd9f09475af7162e6cced5876fb7736f8.zip
[llvm-pdbutil] Dump raw bytes of type and id records.
llvm-svn: 306167
Diffstat (limited to 'llvm/lib/DebugInfo/PDB/Native/TpiStream.cpp')
-rw-r--r--llvm/lib/DebugInfo/PDB/Native/TpiStream.cpp12
1 files changed, 11 insertions, 1 deletions
diff --git a/llvm/lib/DebugInfo/PDB/Native/TpiStream.cpp b/llvm/lib/DebugInfo/PDB/Native/TpiStream.cpp
index 67c803d3124..f917ef91f63 100644
--- a/llvm/lib/DebugInfo/PDB/Native/TpiStream.cpp
+++ b/llvm/lib/DebugInfo/PDB/Native/TpiStream.cpp
@@ -66,7 +66,13 @@ Error TpiStream::reload() {
"TPI Stream Invalid number of hash buckets.");
// The actual type records themselves come from this stream
- if (auto EC = Reader.readArray(TypeRecords, Header->TypeRecordBytes))
+ if (auto EC =
+ Reader.readSubstream(TypeRecordsSubstream, Header->TypeRecordBytes))
+ return EC;
+
+ BinaryStreamReader RecordReader(TypeRecordsSubstream.StreamData);
+ if (auto EC =
+ RecordReader.readArray(TypeRecords, TypeRecordsSubstream.size()))
return EC;
// Hash indices, hash values, etc come from the hash stream.
@@ -135,6 +141,10 @@ uint16_t TpiStream::getTypeHashStreamAuxIndex() const {
uint32_t TpiStream::getNumHashBuckets() const { return Header->NumHashBuckets; }
uint32_t TpiStream::getHashKeySize() const { return Header->HashKeySize; }
+BinarySubstreamRef TpiStream::getTypeRecordsSubstream() const {
+ return TypeRecordsSubstream;
+}
+
FixedStreamArray<support::ulittle32_t> TpiStream::getHashValues() const {
return HashValues;
}
OpenPOWER on IntegriCloud