1 //===- ModStream.h - PDB Module Info Stream Access ------------------------===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 #ifndef LLVM_DEBUGINFO_PDB_RAW_MODSTREAM_H
11 #define LLVM_DEBUGINFO_PDB_RAW_MODSTREAM_H
13 #include "llvm/ADT/iterator_range.h"
14 #include "llvm/DebugInfo/CodeView/CVRecord.h"
15 #include "llvm/DebugInfo/CodeView/ModuleSubstream.h"
16 #include "llvm/DebugInfo/CodeView/SymbolRecord.h"
17 #include "llvm/DebugInfo/MSF/MappedBlockStream.h"
18 #include "llvm/Support/BinaryStreamArray.h"
19 #include "llvm/Support/BinaryStreamRef.h"
20 #include "llvm/Support/Error.h"
29 ModStream(const ModInfo &Module,
30 std::unique_ptr<msf::MappedBlockStream> Stream);
35 uint32_t signature() const { return Signature; }
37 iterator_range<codeview::CVSymbolArray::Iterator>
38 symbols(bool *HadError) const;
40 iterator_range<codeview::ModuleSubstreamArray::Iterator>
41 lines(bool *HadError) const;
50 std::unique_ptr<msf::MappedBlockStream> Stream;
52 codeview::CVSymbolArray SymbolsSubstream;
53 BinaryStreamRef LinesSubstream;
54 BinaryStreamRef C13LinesSubstream;
55 BinaryStreamRef GlobalRefsSubstream;
57 codeview::ModuleSubstreamArray LineInfo;