LLVM 17.0.0git
DIAEnumSymbols.h
Go to the documentation of this file.
1//==- DIAEnumSymbols.h - DIA 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#ifndef LLVM_DEBUGINFO_PDB_DIA_DIAENUMSYMBOLS_H
10#define LLVM_DEBUGINFO_PDB_DIA_DIAENUMSYMBOLS_H
11
12#include "DIASupport.h"
15
16namespace llvm {
17namespace pdb {
18class DIASession;
19
20class DIAEnumSymbols : public IPDBEnumChildren<PDBSymbol> {
21public:
22 explicit DIAEnumSymbols(const DIASession &Session,
23 CComPtr<IDiaEnumSymbols> DiaEnumerator);
24
25 uint32_t getChildCount() const override;
26 std::unique_ptr<PDBSymbol> getChildAtIndex(uint32_t Index) const override;
27 std::unique_ptr<PDBSymbol> getNext() override;
28 void reset() override;
29
30private:
31 const DIASession &Session;
32 CComPtr<IDiaEnumSymbols> Enumerator;
33};
34}
35}
36
37#endif
std::unique_ptr< PDBSymbol > getChildAtIndex(uint32_t Index) const override
std::unique_ptr< PDBSymbol > getNext() override
uint32_t getChildCount() const override
This is an optimization pass for GlobalISel generic memory operations.
Definition: AddressRanges.h:18