summaryrefslogtreecommitdiffstats
path: root/llvm/include/llvm/DebugInfo/PDB/Native/InjectedSourceStream.h
diff options
context:
space:
mode:
authorNico Weber <nicolasweber@gmx.de>2019-07-16 18:04:26 +0000
committerNico Weber <nicolasweber@gmx.de>2019-07-16 18:04:26 +0000
commitd100b5dd0197df615ac0ffc1619aec796cbdc0be (patch)
tree62007d55a3c13a85269dea83c3c86a642304dfc9 /llvm/include/llvm/DebugInfo/PDB/Native/InjectedSourceStream.h
parent17060f0a54b681b8c7cec2f9ab465f6a1e51d968 (diff)
downloadbcm5719-llvm-d100b5dd0197df615ac0ffc1619aec796cbdc0be.tar.gz
bcm5719-llvm-d100b5dd0197df615ac0ffc1619aec796cbdc0be.zip
Teach `llvm-pdbutil pretty -native` about `-injected-sources`
`pretty -native -injected-sources -injected-source-content` works with this patch, and produces identical output to the dia version. Differential Revision: https://reviews.llvm.org/D64428 llvm-svn: 366236
Diffstat (limited to 'llvm/include/llvm/DebugInfo/PDB/Native/InjectedSourceStream.h')
-rw-r--r--llvm/include/llvm/DebugInfo/PDB/Native/InjectedSourceStream.h44
1 files changed, 44 insertions, 0 deletions
diff --git a/llvm/include/llvm/DebugInfo/PDB/Native/InjectedSourceStream.h b/llvm/include/llvm/DebugInfo/PDB/Native/InjectedSourceStream.h
new file mode 100644
index 00000000000..d0cac3749bc
--- /dev/null
+++ b/llvm/include/llvm/DebugInfo/PDB/Native/InjectedSourceStream.h
@@ -0,0 +1,44 @@
+//===- InjectedSourceStream.h - PDB Headerblock Stream Access ---*- C++ -*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_DEBUGINFO_PDB_RAW_PDBINJECTEDSOURCESTREAM_H
+#define LLVM_DEBUGINFO_PDB_RAW_PDBINJECTEDSOURCESTREAM_H
+
+#include "llvm/DebugInfo/PDB/Native/HashTable.h"
+#include "llvm/DebugInfo/PDB/Native/RawTypes.h"
+#include "llvm/Support/Error.h"
+
+namespace llvm {
+namespace msf {
+class MappedBlockStream;
+}
+namespace pdb {
+class PDBFile;
+class PDBStringTable;
+
+class InjectedSourceStream {
+public:
+ InjectedSourceStream(std::unique_ptr<msf::MappedBlockStream> Stream);
+ Error reload(const PDBStringTable &Strings);
+
+ using const_iterator = HashTable<SrcHeaderBlockEntry>::const_iterator;
+ const_iterator begin() const { return InjectedSourceTable.begin(); }
+ const_iterator end() const { return InjectedSourceTable.end(); }
+
+ uint32_t size() const { return InjectedSourceTable.size(); }
+
+private:
+ std::unique_ptr<msf::MappedBlockStream> Stream;
+
+ const SrcHeaderBlockHeader* Header;
+ HashTable<SrcHeaderBlockEntry> InjectedSourceTable;
+};
+}
+}
+
+#endif
OpenPOWER on IntegriCloud