File indexing completed on 2026-05-10 08:43:45
0001
0002
0003
0004
0005
0006
0007
0008
0009 #ifndef LLVM_DEBUGINFO_PDB_NATIVE_NATIVESYMBOLENUMERATOR_H
0010 #define LLVM_DEBUGINFO_PDB_NATIVE_NATIVESYMBOLENUMERATOR_H
0011
0012 #include "llvm/DebugInfo/CodeView/TypeRecord.h"
0013 #include "llvm/DebugInfo/PDB/IPDBRawSymbol.h"
0014 #include "llvm/DebugInfo/PDB/Native/NativeRawSymbol.h"
0015 #include "llvm/DebugInfo/PDB/PDBTypes.h"
0016
0017 namespace llvm {
0018
0019 class raw_ostream;
0020 namespace pdb {
0021 class NativeSession;
0022 class NativeTypeEnum;
0023
0024 class NativeSymbolEnumerator : public NativeRawSymbol {
0025 public:
0026 NativeSymbolEnumerator(NativeSession &Session, SymIndexId Id,
0027 const NativeTypeEnum &Parent,
0028 codeview::EnumeratorRecord Record);
0029
0030 ~NativeSymbolEnumerator() override;
0031
0032 void dump(raw_ostream &OS, int Indent, PdbSymbolIdField ShowIdFields,
0033 PdbSymbolIdField RecurseIdFields) const override;
0034
0035 SymIndexId getClassParentId() const override;
0036 SymIndexId getLexicalParentId() const override;
0037 std::string getName() const override;
0038 SymIndexId getTypeId() const override;
0039 PDB_DataKind getDataKind() const override;
0040 PDB_LocType getLocationType() const override;
0041 bool isConstType() const override;
0042 bool isVolatileType() const override;
0043 bool isUnalignedType() const override;
0044 Variant getValue() const override;
0045
0046 protected:
0047 const NativeTypeEnum &Parent;
0048 codeview::EnumeratorRecord Record;
0049 };
0050
0051 }
0052 }
0053
0054 #endif