File indexing completed on 2026-05-10 08:43:39
0001
0002
0003
0004
0005
0006
0007
0008
0009 #ifndef LLVM_DEBUGINFO_CODEVIEW_CVSYMBOLVISITOR_H
0010 #define LLVM_DEBUGINFO_CODEVIEW_CVSYMBOLVISITOR_H
0011
0012 #include "llvm/DebugInfo/CodeView/CVRecord.h"
0013 #include "llvm/Support/Error.h"
0014
0015 namespace llvm {
0016 namespace codeview {
0017 class SymbolVisitorCallbacks;
0018
0019 class CVSymbolVisitor {
0020 public:
0021 struct FilterOptions {
0022 std::optional<uint32_t> SymbolOffset;
0023 std::optional<uint32_t> ParentRecursiveDepth;
0024 std::optional<uint32_t> ChildRecursiveDepth;
0025 };
0026
0027 CVSymbolVisitor(SymbolVisitorCallbacks &Callbacks);
0028
0029 Error visitSymbolRecord(CVSymbol &Record);
0030 Error visitSymbolRecord(CVSymbol &Record, uint32_t Offset);
0031 Error visitSymbolStream(const CVSymbolArray &Symbols);
0032 Error visitSymbolStream(const CVSymbolArray &Symbols, uint32_t InitialOffset);
0033 Error visitSymbolStreamFiltered(const CVSymbolArray &Symbols,
0034 const FilterOptions &Filter);
0035
0036 private:
0037 SymbolVisitorCallbacks &Callbacks;
0038 };
0039
0040 }
0041 }
0042
0043 #endif