File indexing completed on 2026-05-10 08:43:40
0001
0002
0003
0004
0005
0006
0007
0008
0009 #ifndef LLVM_DEBUGINFO_CODEVIEW_TYPEVISITORCALLBACKS_H
0010 #define LLVM_DEBUGINFO_CODEVIEW_TYPEVISITORCALLBACKS_H
0011
0012 #include "llvm/DebugInfo/CodeView/TypeRecord.h"
0013 #include "llvm/Support/Error.h"
0014
0015 namespace llvm {
0016 namespace codeview {
0017
0018 class TypeVisitorCallbacks {
0019 public:
0020 virtual ~TypeVisitorCallbacks() = default;
0021
0022
0023 virtual Error visitUnknownType(CVType &Record) { return Error::success(); }
0024
0025
0026
0027
0028
0029
0030
0031 virtual Error visitTypeBegin(CVType &Record) { return Error::success(); }
0032 virtual Error visitTypeBegin(CVType &Record, TypeIndex Index) {
0033 return Error::success();
0034 }
0035 virtual Error visitTypeEnd(CVType &Record) { return Error::success(); }
0036
0037 virtual Error visitUnknownMember(CVMemberRecord &Record) {
0038 return Error::success();
0039 }
0040
0041 virtual Error visitMemberBegin(CVMemberRecord &Record) {
0042 return Error::success();
0043 }
0044
0045 virtual Error visitMemberEnd(CVMemberRecord &Record) {
0046 return Error::success();
0047 }
0048
0049 #define TYPE_RECORD(EnumName, EnumVal, Name) \
0050 virtual Error visitKnownRecord(CVType &CVR, Name##Record &Record) { \
0051 return Error::success(); \
0052 }
0053 #define MEMBER_RECORD(EnumName, EnumVal, Name) \
0054 virtual Error visitKnownMember(CVMemberRecord &CVM, Name##Record &Record) { \
0055 return Error::success(); \
0056 }
0057
0058 #define TYPE_RECORD_ALIAS(EnumName, EnumVal, Name, AliasName)
0059 #define MEMBER_RECORD_ALIAS(EnumName, EnumVal, Name, AliasName)
0060 #include "llvm/DebugInfo/CodeView/CodeViewTypes.def"
0061 #undef TYPE_RECORD
0062 #undef TYPE_RECORD_ALIAS
0063 #undef MEMBER_RECORD
0064 #undef MEMBER_RECORD_ALIAS
0065 };
0066
0067 }
0068 }
0069
0070 #endif