Subversion Repositories QNX 8.QNX8 LLVM/Clang compiler suite

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
14 pmbaty 1
//==- NativeEnumGlobals.h - Native Global 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_NATIVE_NATIVEENUMGLOBALS_H
10
#define LLVM_DEBUGINFO_PDB_NATIVE_NATIVEENUMGLOBALS_H
11
 
12
#include "llvm/DebugInfo/CodeView/CodeView.h"
13
#include "llvm/DebugInfo/PDB/IPDBEnumChildren.h"
14
#include "llvm/DebugInfo/PDB/PDBSymbol.h"
15
 
16
#include <vector>
17
 
18
namespace llvm {
19
namespace pdb {
20
 
21
class NativeSession;
22
 
23
class NativeEnumGlobals : public IPDBEnumChildren<PDBSymbol> {
24
public:
25
  NativeEnumGlobals(NativeSession &Session,
26
                    std::vector<codeview::SymbolKind> Kinds);
27
 
28
  uint32_t getChildCount() const override;
29
  std::unique_ptr<PDBSymbol> getChildAtIndex(uint32_t Index) const override;
30
  std::unique_ptr<PDBSymbol> getNext() override;
31
  void reset() override;
32
 
33
private:
34
  std::vector<uint32_t> MatchOffsets;
35
  uint32_t Index;
36
  NativeSession &Session;
37
};
38
 
39
} // namespace pdb
40
} // namespace llvm
41
 
42
#endif