LLVM
15.0.0git
lib
DebugInfo
PDB
Native
NativeEnumSymbols.cpp
Go to the documentation of this file.
1
//==- NativeEnumSymbols.cpp - Native Symbol Enumerator impl ------*- 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
//===----------------------------------------------------------------------===//
8
9
#include "
llvm/DebugInfo/PDB/Native/NativeEnumSymbols.h
"
10
11
#include "
llvm/DebugInfo/CodeView/CodeView.h
"
12
#include "
llvm/DebugInfo/PDB/IPDBEnumChildren.h
"
13
#include "
llvm/DebugInfo/PDB/Native/NativeSession.h
"
14
#include "
llvm/DebugInfo/PDB/Native/SymbolCache.h
"
15
#include "
llvm/DebugInfo/PDB/PDBSymbol.h
"
16
17
using namespace
llvm
;
18
using namespace
llvm::codeview
;
19
using namespace
llvm::pdb
;
20
21
NativeEnumSymbols::NativeEnumSymbols(
NativeSession
&PDBSession,
22
std::vector<SymIndexId> Symbols)
23
: Symbols(
std
::
move
(Symbols)), Index(0), Session(PDBSession) {}
24
25
uint32_t
NativeEnumSymbols::getChildCount
()
const
{
26
return
static_cast<
uint32_t
>
(Symbols.size());
27
}
28
29
std::unique_ptr<PDBSymbol>
30
NativeEnumSymbols::getChildAtIndex
(
uint32_t
N
)
const
{
31
if
(
N
< Symbols.size()) {
32
return
Session.
getSymbolCache
().
getSymbolById
(Symbols[
N
]);
33
}
34
return
nullptr
;
35
}
36
37
std::unique_ptr<PDBSymbol>
NativeEnumSymbols::getNext
() {
38
return
getChildAtIndex
(Index++);
39
}
40
41
void
NativeEnumSymbols::reset
() { Index = 0; }
llvm
This is an optimization pass for GlobalISel generic memory operations.
Definition:
AddressRanges.h:17
llvm::pdb::NativeEnumSymbols::getNext
std::unique_ptr< PDBSymbol > getNext() override
Definition:
NativeEnumSymbols.cpp:37
NativeEnumSymbols.h
llvm::pdb::NativeEnumSymbols::getChildCount
uint32_t getChildCount() const override
Definition:
NativeEnumSymbols.cpp:25
PDBSymbol.h
CodeView.h
llvm::pdb
Definition:
ConcreteSymbolEnumerator.h:20
llvm::pdb::SymbolCache::getSymbolById
std::unique_ptr< PDBSymbol > getSymbolById(SymIndexId SymbolId) const
Definition:
SymbolCache.cpp:247
llvm::pdb::NativeSession::getSymbolCache
SymbolCache & getSymbolCache()
Definition:
NativeSession.h:113
IPDBEnumChildren.h
llvm::move
OutputIt move(R &&Range, OutputIt Out)
Provide wrappers to std::move which take ranges instead of having to pass begin/end explicitly.
Definition:
STLExtras.h:1665
llvm::pdb::NativeEnumSymbols::reset
void reset() override
Definition:
NativeEnumSymbols.cpp:41
uint32_t
std
Definition:
BitVector.h:851
llvm::pdb::NativeEnumSymbols::getChildAtIndex
std::unique_ptr< PDBSymbol > getChildAtIndex(uint32_t Index) const override
Definition:
NativeEnumSymbols.cpp:30
llvm::pdb::NativeSession
Definition:
NativeSession.h:32
llvm::codeview
Definition:
AppendingTypeTableBuilder.h:22
N
#define N
SymbolCache.h
NativeSession.h
Generated on Tue May 24 2022 23:00:11 for LLVM by
1.8.17