[Alignment][NFC] Convert StoreInst to MaybeAlign
[llvm-complete.git] / include / llvm / DebugInfo / PDB / Native / PublicsStream.h
blobee28d108df8b67d7284900f5a150d41cd53bc893
1 //===- PublicsStream.h - PDB Public Symbol Stream -------- ------*- C++ -*-===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
9 #ifndef LLVM_DEBUGINFO_PDB_RAW_PUBLICSSTREAM_H
10 #define LLVM_DEBUGINFO_PDB_RAW_PUBLICSSTREAM_H
12 #include "llvm/DebugInfo/CodeView/SymbolRecord.h"
13 #include "llvm/DebugInfo/MSF/MappedBlockStream.h"
14 #include "llvm/DebugInfo/PDB/Native/GlobalsStream.h"
15 #include "llvm/DebugInfo/PDB/Native/RawConstants.h"
16 #include "llvm/DebugInfo/PDB/Native/RawTypes.h"
17 #include "llvm/DebugInfo/PDB/PDBTypes.h"
18 #include "llvm/Support/BinaryStreamArray.h"
19 #include "llvm/Support/Error.h"
21 namespace llvm {
22 namespace pdb {
23 class DbiStream;
24 struct GSIHashHeader;
25 class PDBFile;
27 class PublicsStream {
28 public:
29 PublicsStream(std::unique_ptr<msf::MappedBlockStream> Stream);
30 ~PublicsStream();
31 Error reload();
33 uint32_t getSymHash() const;
34 uint16_t getThunkTableSection() const;
35 uint32_t getThunkTableOffset() const;
36 const GSIHashTable &getPublicsTable() const { return PublicsTable; }
37 FixedStreamArray<support::ulittle32_t> getAddressMap() const {
38 return AddressMap;
40 FixedStreamArray<support::ulittle32_t> getThunkMap() const {
41 return ThunkMap;
43 FixedStreamArray<SectionOffset> getSectionOffsets() const {
44 return SectionOffsets;
47 private:
48 std::unique_ptr<msf::MappedBlockStream> Stream;
49 GSIHashTable PublicsTable;
50 FixedStreamArray<support::ulittle32_t> AddressMap;
51 FixedStreamArray<support::ulittle32_t> ThunkMap;
52 FixedStreamArray<SectionOffset> SectionOffsets;
54 const PublicsStreamHeader *Header;
59 #endif