47  return Header->ISectThunkTable;
 
 
   50  return Header->OffThunkTable;
 
 
   65                                "Publics Stream does not contain a header.");
 
   70                                "Publics Stream does not contain a header.");
 
   73  if (
auto E = PublicsTable.read(Reader))
 
   78  if (
auto EC = Reader.
readArray(AddressMap, NumAddressMapEntries))
 
   81                                           "Could not read an address map."));
 
   84  if (
auto EC = Reader.
readArray(ThunkMap, Header->NumThunks))
 
   87                                           "Could not read a thunk map."));
 
   91    if (
auto EC = Reader.
readArray(SectionOffsets, Header->NumSections))
 
   94                                             "Could not read a section map."));
 
   99                                "Corrupted publics stream.");
 
 
  105std::optional<std::pair<codeview::PublicSym32, size_t>>
 
  111      AddressMap, std::tuple(Segment, 
Offset),
 
  114        if (Sym.kind() != codeview::S_PUB32)
 
  125        return std::tie(Psym->Segment, Psym->Offset) < Addr;
 
  128  if (It == AddressMap.end())
 
  131  auto Sym = 
Symbols.readRecord(It->value());
 
  132  if (Sym.kind() != codeview::S_PUB32)
 
  146  std::ptrdiff_t IterOffset = It - AddressMap.begin();
 
  147  return std::pair{Psym, 
static_cast<size_t>(IterOffset)};
 
 
Provides read only access to a subclass of BinaryStream.
 
Error readObject(const T *&Dest)
Get a pointer to an object of type T from the underlying stream, as if by memcpy, and store the resul...
 
uint64_t bytesRemaining() const
 
Error readArray(ArrayRef< T > &Array, uint32_t NumElements)
Get a reference to a NumElements element array of objects of type T from the underlying stream as if ...
 
Lightweight error class with error context and mandatory checking.
 
static ErrorSuccess success()
Create a success value.
 
static Error deserializeAs(CVSymbol Symbol, T &Record)
 
LLVM_ABI uint32_t getSymHash() const
 
LLVM_ABI uint32_t getThunkTableOffset() const
 
LLVM_ABI ~PublicsStream()
 
LLVM_ABI PublicsStream(std::unique_ptr< msf::MappedBlockStream > Stream)
 
LLVM_ABI std::optional< std::pair< codeview::PublicSym32, size_t > > findByAddress(const SymbolStream &Symbols, uint16_t Segment, uint32_t Offset) const
Find a public symbol by a segment and offset.
 
LLVM_ABI uint16_t getThunkTableSection() const
 
detail::packed_endian_specific_integral< uint32_t, llvm::endianness::little, unaligned > ulittle32_t
 
This is an optimization pass for GlobalISel generic memory operations.
 
Error joinErrors(Error E1, Error E2)
Concatenate errors.
 
Error make_error(ArgTs &&... Args)
Make a Error instance representing failure using the given error info type.
 
auto lower_bound(R &&Range, T &&Value)
Provide wrappers to std::lower_bound which take ranges instead of having to pass begin/end explicitly...
 
OutputIt move(R &&Range, OutputIt Out)
Provide wrappers to std::move which take ranges instead of having to pass begin/end explicitly.
 
void consumeError(Error Err)
Consume a Error without doing anything.
 
Implement std::hash so that hash_code can be used in STL containers.