10 #ifndef LLVM_DEBUGINFO_CODEVIEW_SYMBOLVISITORCALLBACKPIPELINE_H 11 #define LLVM_DEBUGINFO_CODEVIEW_SYMBOLVISITORCALLBACKPIPELINE_H 26 for (
auto Visitor : Pipeline) {
27 if (
auto EC = Visitor->visitUnknownSymbol(Record))
34 for (
auto Visitor : Pipeline) {
35 if (
auto EC = Visitor->visitSymbolBegin(Record, Offset))
42 for (
auto Visitor : Pipeline) {
43 if (
auto EC = Visitor->visitSymbolBegin(Record))
50 for (
auto Visitor : Pipeline) {
51 if (
auto EC = Visitor->visitSymbolEnd(Record))
58 Pipeline.push_back(&Callbacks);
61 #define SYMBOL_RECORD(EnumName, EnumVal, Name) \ 62 Error visitKnownRecord(CVSymbol &CVR, Name &Record) override { \ 63 for (auto Visitor : Pipeline) { \ 64 if (auto EC = Visitor->visitKnownRecord(CVR, Record)) \ 67 return Error::success(); \ 69 #define SYMBOL_RECORD_ALIAS(EnumName, EnumVal, Name, AliasName) 70 #include "llvm/DebugInfo/CodeView/CodeViewSymbols.def" 73 std::vector<SymbolVisitorCallbacks *> Pipeline;
79 #endif // LLVM_DEBUGINFO_CODEVIEW_SYMBOLVISITORCALLBACKPIPELINE_H SymbolVisitorCallbackPipeline()=default
This class represents lattice values for constants.
Error visitUnknownSymbol(CVSymbol &Record) override
Action to take on unknown symbols. By default, they are ignored.
void addCallbackToPipeline(SymbolVisitorCallbacks &Callbacks)
static ErrorSuccess success()
Create a success value.
Error visitSymbolEnd(CVSymbol &Record) override
Error visitSymbolBegin(CVSymbol &Record) override
Lightweight error class with error context and mandatory checking.
Error visitSymbolBegin(CVSymbol &Record, uint32_t Offset) override
Paired begin/end actions for all symbols.