/Users/buildslave/jenkins/workspace/clang-stage2-coverage-R/llvm/include/llvm/DebugInfo/CodeView/TypeVisitorCallbackPipeline.h
Line | Count | Source (jump to first uncovered line) |
1 | | //===- TypeVisitorCallbackPipeline.h ----------------------------*- 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_CODEVIEW_TYPEVISITORCALLBACKPIPELINE_H |
10 | | #define LLVM_DEBUGINFO_CODEVIEW_TYPEVISITORCALLBACKPIPELINE_H |
11 | | |
12 | | #include "llvm/DebugInfo/CodeView/CodeView.h" |
13 | | #include "llvm/DebugInfo/CodeView/TypeRecord.h" |
14 | | #include "llvm/DebugInfo/CodeView/TypeVisitorCallbacks.h" |
15 | | #include "llvm/Support/Error.h" |
16 | | #include <vector> |
17 | | |
18 | | namespace llvm { |
19 | | namespace codeview { |
20 | | |
21 | | class TypeVisitorCallbackPipeline : public TypeVisitorCallbacks { |
22 | | public: |
23 | 10.8k | TypeVisitorCallbackPipeline() = default; |
24 | | |
25 | 0 | Error visitUnknownType(CVRecord<TypeLeafKind> &Record) override { |
26 | 0 | for (auto Visitor : Pipeline) { |
27 | 0 | if (auto EC = Visitor->visitUnknownType(Record)) |
28 | 0 | return EC; |
29 | 0 | } |
30 | 0 | return Error::success(); |
31 | 0 | } |
32 | | |
33 | 90 | Error visitUnknownMember(CVMemberRecord &Record) override { |
34 | 180 | for (auto Visitor : Pipeline) { |
35 | 180 | if (auto EC = Visitor->visitUnknownMember(Record)) |
36 | 0 | return EC; |
37 | 180 | } |
38 | 90 | return Error::success(); |
39 | 90 | } |
40 | | |
41 | 0 | Error visitTypeBegin(CVType &Record) override { |
42 | 0 | for (auto Visitor : Pipeline) { |
43 | 0 | if (auto EC = Visitor->visitTypeBegin(Record)) |
44 | 0 | return EC; |
45 | 0 | } |
46 | 0 | return Error::success(); |
47 | 0 | } |
48 | | |
49 | 17.1k | Error visitTypeBegin(CVType &Record, TypeIndex Index) override { |
50 | 35.8k | for (auto Visitor : Pipeline) { |
51 | 35.8k | if (auto EC = Visitor->visitTypeBegin(Record, Index)) |
52 | 0 | return EC; |
53 | 35.8k | } |
54 | 17.1k | return Error::success(); |
55 | 17.1k | } |
56 | | |
57 | 17.1k | Error visitTypeEnd(CVType &Record) override { |
58 | 35.8k | for (auto Visitor : Pipeline) { |
59 | 35.8k | if (auto EC = Visitor->visitTypeEnd(Record)) |
60 | 0 | return EC; |
61 | 35.8k | } |
62 | 17.1k | return Error::success(); |
63 | 17.1k | } |
64 | | |
65 | 34.0k | Error visitMemberBegin(CVMemberRecord &Record) override { |
66 | 68.0k | for (auto Visitor : Pipeline) { |
67 | 68.0k | if (auto EC = Visitor->visitMemberBegin(Record)) |
68 | 0 | return EC; |
69 | 68.0k | } |
70 | 34.0k | return Error::success(); |
71 | 34.0k | } |
72 | | |
73 | 34.0k | Error visitMemberEnd(CVMemberRecord &Record) override { |
74 | 68.0k | for (auto Visitor : Pipeline) { |
75 | 68.0k | if (auto EC = Visitor->visitMemberEnd(Record)) |
76 | 0 | return EC; |
77 | 68.0k | } |
78 | 34.0k | return Error::success(); |
79 | 34.0k | } |
80 | | |
81 | 15.4k | void addCallbackToPipeline(TypeVisitorCallbacks &Callbacks) { |
82 | 15.4k | Pipeline.push_back(&Callbacks); |
83 | 15.4k | } |
84 | | |
85 | 3.11k | void addCallbackToPipelineFront(TypeVisitorCallbacks &Callbacks) { |
86 | 3.11k | auto CallBackItr = Pipeline.begin(); |
87 | 3.11k | Pipeline.insert(CallBackItr, &Callbacks); |
88 | 3.11k | } |
89 | | |
90 | | #define TYPE_RECORD(EnumName, EnumVal, Name) \ |
91 | 17.1k | Error visitKnownRecord(CVType &CVR, Name##Record &Record) override { \ |
92 | 17.1k | return visitKnownRecordImpl(CVR, Record); \ |
93 | 17.1k | } llvm::codeview::TypeVisitorCallbackPipeline::visitKnownRecord(llvm::codeview::CVRecord<llvm::codeview::TypeLeafKind>&, llvm::codeview::PointerRecord&) Line | Count | Source | 91 | 2.20k | Error visitKnownRecord(CVType &CVR, Name##Record &Record) override { \ | 92 | 2.20k | return visitKnownRecordImpl(CVR, Record); \ | 93 | 2.20k | } |
llvm::codeview::TypeVisitorCallbackPipeline::visitKnownRecord(llvm::codeview::CVRecord<llvm::codeview::TypeLeafKind>&, llvm::codeview::ModifierRecord&) Line | Count | Source | 91 | 332 | Error visitKnownRecord(CVType &CVR, Name##Record &Record) override { \ | 92 | 332 | return visitKnownRecordImpl(CVR, Record); \ | 93 | 332 | } |
llvm::codeview::TypeVisitorCallbackPipeline::visitKnownRecord(llvm::codeview::CVRecord<llvm::codeview::TypeLeafKind>&, llvm::codeview::ProcedureRecord&) Line | Count | Source | 91 | 903 | Error visitKnownRecord(CVType &CVR, Name##Record &Record) override { \ | 92 | 903 | return visitKnownRecordImpl(CVR, Record); \ | 93 | 903 | } |
llvm::codeview::TypeVisitorCallbackPipeline::visitKnownRecord(llvm::codeview::CVRecord<llvm::codeview::TypeLeafKind>&, llvm::codeview::MemberFunctionRecord&) Line | Count | Source | 91 | 1.87k | Error visitKnownRecord(CVType &CVR, Name##Record &Record) override { \ | 92 | 1.87k | return visitKnownRecordImpl(CVR, Record); \ | 93 | 1.87k | } |
llvm::codeview::TypeVisitorCallbackPipeline::visitKnownRecord(llvm::codeview::CVRecord<llvm::codeview::TypeLeafKind>&, llvm::codeview::LabelRecord&) Line | Count | Source | 91 | 1 | Error visitKnownRecord(CVType &CVR, Name##Record &Record) override { \ | 92 | 1 | return visitKnownRecordImpl(CVR, Record); \ | 93 | 1 | } |
llvm::codeview::TypeVisitorCallbackPipeline::visitKnownRecord(llvm::codeview::CVRecord<llvm::codeview::TypeLeafKind>&, llvm::codeview::ArgListRecord&) Line | Count | Source | 91 | 1.33k | Error visitKnownRecord(CVType &CVR, Name##Record &Record) override { \ | 92 | 1.33k | return visitKnownRecordImpl(CVR, Record); \ | 93 | 1.33k | } |
llvm::codeview::TypeVisitorCallbackPipeline::visitKnownRecord(llvm::codeview::CVRecord<llvm::codeview::TypeLeafKind>&, llvm::codeview::FieldListRecord&) Line | Count | Source | 91 | 1.88k | Error visitKnownRecord(CVType &CVR, Name##Record &Record) override { \ | 92 | 1.88k | return visitKnownRecordImpl(CVR, Record); \ | 93 | 1.88k | } |
llvm::codeview::TypeVisitorCallbackPipeline::visitKnownRecord(llvm::codeview::CVRecord<llvm::codeview::TypeLeafKind>&, llvm::codeview::ArrayRecord&) Line | Count | Source | 91 | 147 | Error visitKnownRecord(CVType &CVR, Name##Record &Record) override { \ | 92 | 147 | return visitKnownRecordImpl(CVR, Record); \ | 93 | 147 | } |
llvm::codeview::TypeVisitorCallbackPipeline::visitKnownRecord(llvm::codeview::CVRecord<llvm::codeview::TypeLeafKind>&, llvm::codeview::ClassRecord&) Line | Count | Source | 91 | 3.18k | Error visitKnownRecord(CVType &CVR, Name##Record &Record) override { \ | 92 | 3.18k | return visitKnownRecordImpl(CVR, Record); \ | 93 | 3.18k | } |
llvm::codeview::TypeVisitorCallbackPipeline::visitKnownRecord(llvm::codeview::CVRecord<llvm::codeview::TypeLeafKind>&, llvm::codeview::UnionRecord&) Line | Count | Source | 91 | 151 | Error visitKnownRecord(CVType &CVR, Name##Record &Record) override { \ | 92 | 151 | return visitKnownRecordImpl(CVR, Record); \ | 93 | 151 | } |
llvm::codeview::TypeVisitorCallbackPipeline::visitKnownRecord(llvm::codeview::CVRecord<llvm::codeview::TypeLeafKind>&, llvm::codeview::EnumRecord&) Line | Count | Source | 91 | 322 | Error visitKnownRecord(CVType &CVR, Name##Record &Record) override { \ | 92 | 322 | return visitKnownRecordImpl(CVR, Record); \ | 93 | 322 | } |
Unexecuted instantiation: llvm::codeview::TypeVisitorCallbackPipeline::visitKnownRecord(llvm::codeview::CVRecord<llvm::codeview::TypeLeafKind>&, llvm::codeview::TypeServer2Record&) llvm::codeview::TypeVisitorCallbackPipeline::visitKnownRecord(llvm::codeview::CVRecord<llvm::codeview::TypeLeafKind>&, llvm::codeview::VFTableRecord&) Line | Count | Source | 91 | 11 | Error visitKnownRecord(CVType &CVR, Name##Record &Record) override { \ | 92 | 11 | return visitKnownRecordImpl(CVR, Record); \ | 93 | 11 | } |
llvm::codeview::TypeVisitorCallbackPipeline::visitKnownRecord(llvm::codeview::CVRecord<llvm::codeview::TypeLeafKind>&, llvm::codeview::VFTableShapeRecord&) Line | Count | Source | 91 | 76 | Error visitKnownRecord(CVType &CVR, Name##Record &Record) override { \ | 92 | 76 | return visitKnownRecordImpl(CVR, Record); \ | 93 | 76 | } |
llvm::codeview::TypeVisitorCallbackPipeline::visitKnownRecord(llvm::codeview::CVRecord<llvm::codeview::TypeLeafKind>&, llvm::codeview::BitFieldRecord&) Line | Count | Source | 91 | 23 | Error visitKnownRecord(CVType &CVR, Name##Record &Record) override { \ | 92 | 23 | return visitKnownRecordImpl(CVR, Record); \ | 93 | 23 | } |
llvm::codeview::TypeVisitorCallbackPipeline::visitKnownRecord(llvm::codeview::CVRecord<llvm::codeview::TypeLeafKind>&, llvm::codeview::FuncIdRecord&) Line | Count | Source | 91 | 874 | Error visitKnownRecord(CVType &CVR, Name##Record &Record) override { \ | 92 | 874 | return visitKnownRecordImpl(CVR, Record); \ | 93 | 874 | } |
llvm::codeview::TypeVisitorCallbackPipeline::visitKnownRecord(llvm::codeview::CVRecord<llvm::codeview::TypeLeafKind>&, llvm::codeview::MemberFuncIdRecord&) Line | Count | Source | 91 | 215 | Error visitKnownRecord(CVType &CVR, Name##Record &Record) override { \ | 92 | 215 | return visitKnownRecordImpl(CVR, Record); \ | 93 | 215 | } |
llvm::codeview::TypeVisitorCallbackPipeline::visitKnownRecord(llvm::codeview::CVRecord<llvm::codeview::TypeLeafKind>&, llvm::codeview::BuildInfoRecord&) Line | Count | Source | 91 | 484 | Error visitKnownRecord(CVType &CVR, Name##Record &Record) override { \ | 92 | 484 | return visitKnownRecordImpl(CVR, Record); \ | 93 | 484 | } |
llvm::codeview::TypeVisitorCallbackPipeline::visitKnownRecord(llvm::codeview::CVRecord<llvm::codeview::TypeLeafKind>&, llvm::codeview::StringListRecord&) Line | Count | Source | 91 | 48 | Error visitKnownRecord(CVType &CVR, Name##Record &Record) override { \ | 92 | 48 | return visitKnownRecordImpl(CVR, Record); \ | 93 | 48 | } |
llvm::codeview::TypeVisitorCallbackPipeline::visitKnownRecord(llvm::codeview::CVRecord<llvm::codeview::TypeLeafKind>&, llvm::codeview::StringIdRecord&) Line | Count | Source | 91 | 1.78k | Error visitKnownRecord(CVType &CVR, Name##Record &Record) override { \ | 92 | 1.78k | return visitKnownRecordImpl(CVR, Record); \ | 93 | 1.78k | } |
llvm::codeview::TypeVisitorCallbackPipeline::visitKnownRecord(llvm::codeview::CVRecord<llvm::codeview::TypeLeafKind>&, llvm::codeview::UdtSourceLineRecord&) Line | Count | Source | 91 | 899 | Error visitKnownRecord(CVType &CVR, Name##Record &Record) override { \ | 92 | 899 | return visitKnownRecordImpl(CVR, Record); \ | 93 | 899 | } |
llvm::codeview::TypeVisitorCallbackPipeline::visitKnownRecord(llvm::codeview::CVRecord<llvm::codeview::TypeLeafKind>&, llvm::codeview::UdtModSourceLineRecord&) Line | Count | Source | 91 | 8 | Error visitKnownRecord(CVType &CVR, Name##Record &Record) override { \ | 92 | 8 | return visitKnownRecordImpl(CVR, Record); \ | 93 | 8 | } |
llvm::codeview::TypeVisitorCallbackPipeline::visitKnownRecord(llvm::codeview::CVRecord<llvm::codeview::TypeLeafKind>&, llvm::codeview::MethodOverloadListRecord&) Line | Count | Source | 91 | 354 | Error visitKnownRecord(CVType &CVR, Name##Record &Record) override { \ | 92 | 354 | return visitKnownRecordImpl(CVR, Record); \ | 93 | 354 | } |
llvm::codeview::TypeVisitorCallbackPipeline::visitKnownRecord(llvm::codeview::CVRecord<llvm::codeview::TypeLeafKind>&, llvm::codeview::PrecompRecord&) Line | Count | Source | 91 | 2 | Error visitKnownRecord(CVType &CVR, Name##Record &Record) override { \ | 92 | 2 | return visitKnownRecordImpl(CVR, Record); \ | 93 | 2 | } |
llvm::codeview::TypeVisitorCallbackPipeline::visitKnownRecord(llvm::codeview::CVRecord<llvm::codeview::TypeLeafKind>&, llvm::codeview::EndPrecompRecord&) Line | Count | Source | 91 | 2 | Error visitKnownRecord(CVType &CVR, Name##Record &Record) override { \ | 92 | 2 | return visitKnownRecordImpl(CVR, Record); \ | 93 | 2 | } |
|
94 | | #define MEMBER_RECORD(EnumName, EnumVal, Name) \ |
95 | | Error visitKnownMember(CVMemberRecord &CVMR, Name##Record &Record) \ |
96 | 33.9k | override { \ |
97 | 33.9k | return visitKnownMemberImpl(CVMR, Record); \ |
98 | 33.9k | } llvm::codeview::TypeVisitorCallbackPipeline::visitKnownMember(llvm::codeview::CVMemberRecord&, llvm::codeview::BaseClassRecord&) Line | Count | Source | 96 | 86 | override { \ | 97 | 86 | return visitKnownMemberImpl(CVMR, Record); \ | 98 | 86 | } |
llvm::codeview::TypeVisitorCallbackPipeline::visitKnownMember(llvm::codeview::CVMemberRecord&, llvm::codeview::VirtualBaseClassRecord&) Line | Count | Source | 96 | 47 | override { \ | 97 | 47 | return visitKnownMemberImpl(CVMR, Record); \ | 98 | 47 | } |
llvm::codeview::TypeVisitorCallbackPipeline::visitKnownMember(llvm::codeview::CVMemberRecord&, llvm::codeview::VFPtrRecord&) Line | Count | Source | 96 | 61 | override { \ | 97 | 61 | return visitKnownMemberImpl(CVMR, Record); \ | 98 | 61 | } |
llvm::codeview::TypeVisitorCallbackPipeline::visitKnownMember(llvm::codeview::CVMemberRecord&, llvm::codeview::StaticDataMemberRecord&) Line | Count | Source | 96 | 225 | override { \ | 97 | 225 | return visitKnownMemberImpl(CVMR, Record); \ | 98 | 225 | } |
llvm::codeview::TypeVisitorCallbackPipeline::visitKnownMember(llvm::codeview::CVMemberRecord&, llvm::codeview::OverloadedMethodRecord&) Line | Count | Source | 96 | 340 | override { \ | 97 | 340 | return visitKnownMemberImpl(CVMR, Record); \ | 98 | 340 | } |
llvm::codeview::TypeVisitorCallbackPipeline::visitKnownMember(llvm::codeview::CVMemberRecord&, llvm::codeview::DataMemberRecord&) Line | Count | Source | 96 | 1.97k | override { \ | 97 | 1.97k | return visitKnownMemberImpl(CVMR, Record); \ | 98 | 1.97k | } |
llvm::codeview::TypeVisitorCallbackPipeline::visitKnownMember(llvm::codeview::CVMemberRecord&, llvm::codeview::NestedTypeRecord&) Line | Count | Source | 96 | 266 | override { \ | 97 | 266 | return visitKnownMemberImpl(CVMR, Record); \ | 98 | 266 | } |
llvm::codeview::TypeVisitorCallbackPipeline::visitKnownMember(llvm::codeview::CVMemberRecord&, llvm::codeview::OneMethodRecord&) Line | Count | Source | 96 | 860 | override { \ | 97 | 860 | return visitKnownMemberImpl(CVMR, Record); \ | 98 | 860 | } |
llvm::codeview::TypeVisitorCallbackPipeline::visitKnownMember(llvm::codeview::CVMemberRecord&, llvm::codeview::EnumeratorRecord&) Line | Count | Source | 96 | 30.0k | override { \ | 97 | 30.0k | return visitKnownMemberImpl(CVMR, Record); \ | 98 | 30.0k | } |
llvm::codeview::TypeVisitorCallbackPipeline::visitKnownMember(llvm::codeview::CVMemberRecord&, llvm::codeview::ListContinuationRecord&) Line | Count | Source | 96 | 20 | override { \ | 97 | 20 | return visitKnownMemberImpl(CVMR, Record); \ | 98 | 20 | } |
|
99 | | #define TYPE_RECORD_ALIAS(EnumName, EnumVal, Name, AliasName) |
100 | | #define MEMBER_RECORD_ALIAS(EnumName, EnumVal, Name, AliasName) |
101 | | #include "llvm/DebugInfo/CodeView/CodeViewTypes.def" |
102 | | |
103 | | private: |
104 | 17.1k | template <typename T> Error visitKnownRecordImpl(CVType &CVR, T &Record) { |
105 | 35.8k | for (auto Visitor : Pipeline) { |
106 | 35.8k | if (auto EC = Visitor->visitKnownRecord(CVR, Record)) |
107 | 0 | return EC; |
108 | 35.8k | } |
109 | 17.1k | return Error::success(); |
110 | 17.1k | } llvm::Error llvm::codeview::TypeVisitorCallbackPipeline::visitKnownRecordImpl<llvm::codeview::PointerRecord>(llvm::codeview::CVRecord<llvm::codeview::TypeLeafKind>&, llvm::codeview::PointerRecord&) Line | Count | Source | 104 | 2.20k | template <typename T> Error visitKnownRecordImpl(CVType &CVR, T &Record) { | 105 | 4.59k | for (auto Visitor : Pipeline) { | 106 | 4.59k | if (auto EC = Visitor->visitKnownRecord(CVR, Record)) | 107 | 0 | return EC; | 108 | 4.59k | } | 109 | 2.20k | return Error::success(); | 110 | 2.20k | } |
llvm::Error llvm::codeview::TypeVisitorCallbackPipeline::visitKnownRecordImpl<llvm::codeview::ModifierRecord>(llvm::codeview::CVRecord<llvm::codeview::TypeLeafKind>&, llvm::codeview::ModifierRecord&) Line | Count | Source | 104 | 332 | template <typename T> Error visitKnownRecordImpl(CVType &CVR, T &Record) { | 105 | 687 | for (auto Visitor : Pipeline) { | 106 | 687 | if (auto EC = Visitor->visitKnownRecord(CVR, Record)) | 107 | 0 | return EC; | 108 | 687 | } | 109 | 332 | return Error::success(); | 110 | 332 | } |
llvm::Error llvm::codeview::TypeVisitorCallbackPipeline::visitKnownRecordImpl<llvm::codeview::ProcedureRecord>(llvm::codeview::CVRecord<llvm::codeview::TypeLeafKind>&, llvm::codeview::ProcedureRecord&) Line | Count | Source | 104 | 903 | template <typename T> Error visitKnownRecordImpl(CVType &CVR, T &Record) { | 105 | 1.95k | for (auto Visitor : Pipeline) { | 106 | 1.95k | if (auto EC = Visitor->visitKnownRecord(CVR, Record)) | 107 | 0 | return EC; | 108 | 1.95k | } | 109 | 903 | return Error::success(); | 110 | 903 | } |
llvm::Error llvm::codeview::TypeVisitorCallbackPipeline::visitKnownRecordImpl<llvm::codeview::MemberFunctionRecord>(llvm::codeview::CVRecord<llvm::codeview::TypeLeafKind>&, llvm::codeview::MemberFunctionRecord&) Line | Count | Source | 104 | 1.87k | template <typename T> Error visitKnownRecordImpl(CVType &CVR, T &Record) { | 105 | 3.82k | for (auto Visitor : Pipeline) { | 106 | 3.82k | if (auto EC = Visitor->visitKnownRecord(CVR, Record)) | 107 | 0 | return EC; | 108 | 3.82k | } | 109 | 1.87k | return Error::success(); | 110 | 1.87k | } |
llvm::Error llvm::codeview::TypeVisitorCallbackPipeline::visitKnownRecordImpl<llvm::codeview::LabelRecord>(llvm::codeview::CVRecord<llvm::codeview::TypeLeafKind>&, llvm::codeview::LabelRecord&) Line | Count | Source | 104 | 1 | template <typename T> Error visitKnownRecordImpl(CVType &CVR, T &Record) { | 105 | 2 | for (auto Visitor : Pipeline) { | 106 | 2 | if (auto EC = Visitor->visitKnownRecord(CVR, Record)) | 107 | 0 | return EC; | 108 | 2 | } | 109 | 1 | return Error::success(); | 110 | 1 | } |
llvm::Error llvm::codeview::TypeVisitorCallbackPipeline::visitKnownRecordImpl<llvm::codeview::ArgListRecord>(llvm::codeview::CVRecord<llvm::codeview::TypeLeafKind>&, llvm::codeview::ArgListRecord&) Line | Count | Source | 104 | 1.33k | template <typename T> Error visitKnownRecordImpl(CVType &CVR, T &Record) { | 105 | 2.81k | for (auto Visitor : Pipeline) { | 106 | 2.81k | if (auto EC = Visitor->visitKnownRecord(CVR, Record)) | 107 | 0 | return EC; | 108 | 2.81k | } | 109 | 1.33k | return Error::success(); | 110 | 1.33k | } |
llvm::Error llvm::codeview::TypeVisitorCallbackPipeline::visitKnownRecordImpl<llvm::codeview::FieldListRecord>(llvm::codeview::CVRecord<llvm::codeview::TypeLeafKind>&, llvm::codeview::FieldListRecord&) Line | Count | Source | 104 | 1.88k | template <typename T> Error visitKnownRecordImpl(CVType &CVR, T &Record) { | 105 | 3.88k | for (auto Visitor : Pipeline) { | 106 | 3.88k | if (auto EC = Visitor->visitKnownRecord(CVR, Record)) | 107 | 0 | return EC; | 108 | 3.88k | } | 109 | 1.88k | return Error::success(); | 110 | 1.88k | } |
llvm::Error llvm::codeview::TypeVisitorCallbackPipeline::visitKnownRecordImpl<llvm::codeview::ArrayRecord>(llvm::codeview::CVRecord<llvm::codeview::TypeLeafKind>&, llvm::codeview::ArrayRecord&) Line | Count | Source | 104 | 147 | template <typename T> Error visitKnownRecordImpl(CVType &CVR, T &Record) { | 105 | 308 | for (auto Visitor : Pipeline) { | 106 | 308 | if (auto EC = Visitor->visitKnownRecord(CVR, Record)) | 107 | 0 | return EC; | 108 | 308 | } | 109 | 147 | return Error::success(); | 110 | 147 | } |
llvm::Error llvm::codeview::TypeVisitorCallbackPipeline::visitKnownRecordImpl<llvm::codeview::ClassRecord>(llvm::codeview::CVRecord<llvm::codeview::TypeLeafKind>&, llvm::codeview::ClassRecord&) Line | Count | Source | 104 | 3.18k | template <typename T> Error visitKnownRecordImpl(CVType &CVR, T &Record) { | 105 | 6.57k | for (auto Visitor : Pipeline) { | 106 | 6.57k | if (auto EC = Visitor->visitKnownRecord(CVR, Record)) | 107 | 0 | return EC; | 108 | 6.57k | } | 109 | 3.18k | return Error::success(); | 110 | 3.18k | } |
llvm::Error llvm::codeview::TypeVisitorCallbackPipeline::visitKnownRecordImpl<llvm::codeview::UnionRecord>(llvm::codeview::CVRecord<llvm::codeview::TypeLeafKind>&, llvm::codeview::UnionRecord&) Line | Count | Source | 104 | 151 | template <typename T> Error visitKnownRecordImpl(CVType &CVR, T &Record) { | 105 | 325 | for (auto Visitor : Pipeline) { | 106 | 325 | if (auto EC = Visitor->visitKnownRecord(CVR, Record)) | 107 | 0 | return EC; | 108 | 325 | } | 109 | 151 | return Error::success(); | 110 | 151 | } |
llvm::Error llvm::codeview::TypeVisitorCallbackPipeline::visitKnownRecordImpl<llvm::codeview::EnumRecord>(llvm::codeview::CVRecord<llvm::codeview::TypeLeafKind>&, llvm::codeview::EnumRecord&) Line | Count | Source | 104 | 322 | template <typename T> Error visitKnownRecordImpl(CVType &CVR, T &Record) { | 105 | 654 | for (auto Visitor : Pipeline) { | 106 | 654 | if (auto EC = Visitor->visitKnownRecord(CVR, Record)) | 107 | 0 | return EC; | 108 | 654 | } | 109 | 322 | return Error::success(); | 110 | 322 | } |
Unexecuted instantiation: llvm::Error llvm::codeview::TypeVisitorCallbackPipeline::visitKnownRecordImpl<llvm::codeview::TypeServer2Record>(llvm::codeview::CVRecord<llvm::codeview::TypeLeafKind>&, llvm::codeview::TypeServer2Record&) llvm::Error llvm::codeview::TypeVisitorCallbackPipeline::visitKnownRecordImpl<llvm::codeview::VFTableRecord>(llvm::codeview::CVRecord<llvm::codeview::TypeLeafKind>&, llvm::codeview::VFTableRecord&) Line | Count | Source | 104 | 11 | template <typename T> Error visitKnownRecordImpl(CVType &CVR, T &Record) { | 105 | 22 | for (auto Visitor : Pipeline) { | 106 | 22 | if (auto EC = Visitor->visitKnownRecord(CVR, Record)) | 107 | 0 | return EC; | 108 | 22 | } | 109 | 11 | return Error::success(); | 110 | 11 | } |
llvm::Error llvm::codeview::TypeVisitorCallbackPipeline::visitKnownRecordImpl<llvm::codeview::VFTableShapeRecord>(llvm::codeview::CVRecord<llvm::codeview::TypeLeafKind>&, llvm::codeview::VFTableShapeRecord&) Line | Count | Source | 104 | 76 | template <typename T> Error visitKnownRecordImpl(CVType &CVR, T &Record) { | 105 | 161 | for (auto Visitor : Pipeline) { | 106 | 161 | if (auto EC = Visitor->visitKnownRecord(CVR, Record)) | 107 | 0 | return EC; | 108 | 161 | } | 109 | 76 | return Error::success(); | 110 | 76 | } |
llvm::Error llvm::codeview::TypeVisitorCallbackPipeline::visitKnownRecordImpl<llvm::codeview::BitFieldRecord>(llvm::codeview::CVRecord<llvm::codeview::TypeLeafKind>&, llvm::codeview::BitFieldRecord&) Line | Count | Source | 104 | 23 | template <typename T> Error visitKnownRecordImpl(CVType &CVR, T &Record) { | 105 | 48 | for (auto Visitor : Pipeline) { | 106 | 48 | if (auto EC = Visitor->visitKnownRecord(CVR, Record)) | 107 | 0 | return EC; | 108 | 48 | } | 109 | 23 | return Error::success(); | 110 | 23 | } |
llvm::Error llvm::codeview::TypeVisitorCallbackPipeline::visitKnownRecordImpl<llvm::codeview::FuncIdRecord>(llvm::codeview::CVRecord<llvm::codeview::TypeLeafKind>&, llvm::codeview::FuncIdRecord&) Line | Count | Source | 104 | 874 | template <typename T> Error visitKnownRecordImpl(CVType &CVR, T &Record) { | 105 | 1.92k | for (auto Visitor : Pipeline) { | 106 | 1.92k | if (auto EC = Visitor->visitKnownRecord(CVR, Record)) | 107 | 0 | return EC; | 108 | 1.92k | } | 109 | 874 | return Error::success(); | 110 | 874 | } |
llvm::Error llvm::codeview::TypeVisitorCallbackPipeline::visitKnownRecordImpl<llvm::codeview::MemberFuncIdRecord>(llvm::codeview::CVRecord<llvm::codeview::TypeLeafKind>&, llvm::codeview::MemberFuncIdRecord&) Line | Count | Source | 104 | 215 | template <typename T> Error visitKnownRecordImpl(CVType &CVR, T &Record) { | 105 | 466 | for (auto Visitor : Pipeline) { | 106 | 466 | if (auto EC = Visitor->visitKnownRecord(CVR, Record)) | 107 | 0 | return EC; | 108 | 466 | } | 109 | 215 | return Error::success(); | 110 | 215 | } |
llvm::Error llvm::codeview::TypeVisitorCallbackPipeline::visitKnownRecordImpl<llvm::codeview::BuildInfoRecord>(llvm::codeview::CVRecord<llvm::codeview::TypeLeafKind>&, llvm::codeview::BuildInfoRecord&) Line | Count | Source | 104 | 484 | template <typename T> Error visitKnownRecordImpl(CVType &CVR, T &Record) { | 105 | 1.07k | for (auto Visitor : Pipeline) { | 106 | 1.07k | if (auto EC = Visitor->visitKnownRecord(CVR, Record)) | 107 | 0 | return EC; | 108 | 1.07k | } | 109 | 484 | return Error::success(); | 110 | 484 | } |
llvm::Error llvm::codeview::TypeVisitorCallbackPipeline::visitKnownRecordImpl<llvm::codeview::StringListRecord>(llvm::codeview::CVRecord<llvm::codeview::TypeLeafKind>&, llvm::codeview::StringListRecord&) Line | Count | Source | 104 | 48 | template <typename T> Error visitKnownRecordImpl(CVType &CVR, T &Record) { | 105 | 96 | for (auto Visitor : Pipeline) { | 106 | 96 | if (auto EC = Visitor->visitKnownRecord(CVR, Record)) | 107 | 0 | return EC; | 108 | 96 | } | 109 | 48 | return Error::success(); | 110 | 48 | } |
llvm::Error llvm::codeview::TypeVisitorCallbackPipeline::visitKnownRecordImpl<llvm::codeview::StringIdRecord>(llvm::codeview::CVRecord<llvm::codeview::TypeLeafKind>&, llvm::codeview::StringIdRecord&) Line | Count | Source | 104 | 1.78k | template <typename T> Error visitKnownRecordImpl(CVType &CVR, T &Record) { | 105 | 3.82k | for (auto Visitor : Pipeline) { | 106 | 3.82k | if (auto EC = Visitor->visitKnownRecord(CVR, Record)) | 107 | 0 | return EC; | 108 | 3.82k | } | 109 | 1.78k | return Error::success(); | 110 | 1.78k | } |
llvm::Error llvm::codeview::TypeVisitorCallbackPipeline::visitKnownRecordImpl<llvm::codeview::UdtSourceLineRecord>(llvm::codeview::CVRecord<llvm::codeview::TypeLeafKind>&, llvm::codeview::UdtSourceLineRecord&) Line | Count | Source | 104 | 899 | template <typename T> Error visitKnownRecordImpl(CVType &CVR, T &Record) { | 105 | 1.91k | for (auto Visitor : Pipeline) { | 106 | 1.91k | if (auto EC = Visitor->visitKnownRecord(CVR, Record)) | 107 | 0 | return EC; | 108 | 1.91k | } | 109 | 899 | return Error::success(); | 110 | 899 | } |
llvm::Error llvm::codeview::TypeVisitorCallbackPipeline::visitKnownRecordImpl<llvm::codeview::UdtModSourceLineRecord>(llvm::codeview::CVRecord<llvm::codeview::TypeLeafKind>&, llvm::codeview::UdtModSourceLineRecord&) Line | Count | Source | 104 | 8 | template <typename T> Error visitKnownRecordImpl(CVType &CVR, T &Record) { | 105 | 16 | for (auto Visitor : Pipeline) { | 106 | 16 | if (auto EC = Visitor->visitKnownRecord(CVR, Record)) | 107 | 0 | return EC; | 108 | 16 | } | 109 | 8 | return Error::success(); | 110 | 8 | } |
llvm::Error llvm::codeview::TypeVisitorCallbackPipeline::visitKnownRecordImpl<llvm::codeview::MethodOverloadListRecord>(llvm::codeview::CVRecord<llvm::codeview::TypeLeafKind>&, llvm::codeview::MethodOverloadListRecord&) Line | Count | Source | 104 | 354 | template <typename T> Error visitKnownRecordImpl(CVType &CVR, T &Record) { | 105 | 712 | for (auto Visitor : Pipeline) { | 106 | 712 | if (auto EC = Visitor->visitKnownRecord(CVR, Record)) | 107 | 0 | return EC; | 108 | 712 | } | 109 | 354 | return Error::success(); | 110 | 354 | } |
llvm::Error llvm::codeview::TypeVisitorCallbackPipeline::visitKnownRecordImpl<llvm::codeview::PrecompRecord>(llvm::codeview::CVRecord<llvm::codeview::TypeLeafKind>&, llvm::codeview::PrecompRecord&) Line | Count | Source | 104 | 2 | template <typename T> Error visitKnownRecordImpl(CVType &CVR, T &Record) { | 105 | 4 | for (auto Visitor : Pipeline) { | 106 | 4 | if (auto EC = Visitor->visitKnownRecord(CVR, Record)) | 107 | 0 | return EC; | 108 | 4 | } | 109 | 2 | return Error::success(); | 110 | 2 | } |
llvm::Error llvm::codeview::TypeVisitorCallbackPipeline::visitKnownRecordImpl<llvm::codeview::EndPrecompRecord>(llvm::codeview::CVRecord<llvm::codeview::TypeLeafKind>&, llvm::codeview::EndPrecompRecord&) Line | Count | Source | 104 | 2 | template <typename T> Error visitKnownRecordImpl(CVType &CVR, T &Record) { | 105 | 4 | for (auto Visitor : Pipeline) { | 106 | 4 | if (auto EC = Visitor->visitKnownRecord(CVR, Record)) | 107 | 0 | return EC; | 108 | 4 | } | 109 | 2 | return Error::success(); | 110 | 2 | } |
|
111 | | |
112 | | template <typename T> |
113 | 33.9k | Error visitKnownMemberImpl(CVMemberRecord &CVMR, T &Record) { |
114 | 67.8k | for (auto Visitor : Pipeline) { |
115 | 67.8k | if (auto EC = Visitor->visitKnownMember(CVMR, Record)) |
116 | 0 | return EC; |
117 | 67.8k | } |
118 | 33.9k | return Error::success(); |
119 | 33.9k | } llvm::Error llvm::codeview::TypeVisitorCallbackPipeline::visitKnownMemberImpl<llvm::codeview::BaseClassRecord>(llvm::codeview::CVMemberRecord&, llvm::codeview::BaseClassRecord&) Line | Count | Source | 113 | 86 | Error visitKnownMemberImpl(CVMemberRecord &CVMR, T &Record) { | 114 | 172 | for (auto Visitor : Pipeline) { | 115 | 172 | if (auto EC = Visitor->visitKnownMember(CVMR, Record)) | 116 | 0 | return EC; | 117 | 172 | } | 118 | 86 | return Error::success(); | 119 | 86 | } |
llvm::Error llvm::codeview::TypeVisitorCallbackPipeline::visitKnownMemberImpl<llvm::codeview::VirtualBaseClassRecord>(llvm::codeview::CVMemberRecord&, llvm::codeview::VirtualBaseClassRecord&) Line | Count | Source | 113 | 47 | Error visitKnownMemberImpl(CVMemberRecord &CVMR, T &Record) { | 114 | 94 | for (auto Visitor : Pipeline) { | 115 | 94 | if (auto EC = Visitor->visitKnownMember(CVMR, Record)) | 116 | 0 | return EC; | 117 | 94 | } | 118 | 47 | return Error::success(); | 119 | 47 | } |
llvm::Error llvm::codeview::TypeVisitorCallbackPipeline::visitKnownMemberImpl<llvm::codeview::VFPtrRecord>(llvm::codeview::CVMemberRecord&, llvm::codeview::VFPtrRecord&) Line | Count | Source | 113 | 61 | Error visitKnownMemberImpl(CVMemberRecord &CVMR, T &Record) { | 114 | 122 | for (auto Visitor : Pipeline) { | 115 | 122 | if (auto EC = Visitor->visitKnownMember(CVMR, Record)) | 116 | 0 | return EC; | 117 | 122 | } | 118 | 61 | return Error::success(); | 119 | 61 | } |
llvm::Error llvm::codeview::TypeVisitorCallbackPipeline::visitKnownMemberImpl<llvm::codeview::StaticDataMemberRecord>(llvm::codeview::CVMemberRecord&, llvm::codeview::StaticDataMemberRecord&) Line | Count | Source | 113 | 225 | Error visitKnownMemberImpl(CVMemberRecord &CVMR, T &Record) { | 114 | 450 | for (auto Visitor : Pipeline) { | 115 | 450 | if (auto EC = Visitor->visitKnownMember(CVMR, Record)) | 116 | 0 | return EC; | 117 | 450 | } | 118 | 225 | return Error::success(); | 119 | 225 | } |
llvm::Error llvm::codeview::TypeVisitorCallbackPipeline::visitKnownMemberImpl<llvm::codeview::OverloadedMethodRecord>(llvm::codeview::CVMemberRecord&, llvm::codeview::OverloadedMethodRecord&) Line | Count | Source | 113 | 340 | Error visitKnownMemberImpl(CVMemberRecord &CVMR, T &Record) { | 114 | 680 | for (auto Visitor : Pipeline) { | 115 | 680 | if (auto EC = Visitor->visitKnownMember(CVMR, Record)) | 116 | 0 | return EC; | 117 | 680 | } | 118 | 340 | return Error::success(); | 119 | 340 | } |
llvm::Error llvm::codeview::TypeVisitorCallbackPipeline::visitKnownMemberImpl<llvm::codeview::DataMemberRecord>(llvm::codeview::CVMemberRecord&, llvm::codeview::DataMemberRecord&) Line | Count | Source | 113 | 1.97k | Error visitKnownMemberImpl(CVMemberRecord &CVMR, T &Record) { | 114 | 3.95k | for (auto Visitor : Pipeline) { | 115 | 3.95k | if (auto EC = Visitor->visitKnownMember(CVMR, Record)) | 116 | 0 | return EC; | 117 | 3.95k | } | 118 | 1.97k | return Error::success(); | 119 | 1.97k | } |
llvm::Error llvm::codeview::TypeVisitorCallbackPipeline::visitKnownMemberImpl<llvm::codeview::NestedTypeRecord>(llvm::codeview::CVMemberRecord&, llvm::codeview::NestedTypeRecord&) Line | Count | Source | 113 | 266 | Error visitKnownMemberImpl(CVMemberRecord &CVMR, T &Record) { | 114 | 532 | for (auto Visitor : Pipeline) { | 115 | 532 | if (auto EC = Visitor->visitKnownMember(CVMR, Record)) | 116 | 0 | return EC; | 117 | 532 | } | 118 | 266 | return Error::success(); | 119 | 266 | } |
llvm::Error llvm::codeview::TypeVisitorCallbackPipeline::visitKnownMemberImpl<llvm::codeview::OneMethodRecord>(llvm::codeview::CVMemberRecord&, llvm::codeview::OneMethodRecord&) Line | Count | Source | 113 | 860 | Error visitKnownMemberImpl(CVMemberRecord &CVMR, T &Record) { | 114 | 1.72k | for (auto Visitor : Pipeline) { | 115 | 1.72k | if (auto EC = Visitor->visitKnownMember(CVMR, Record)) | 116 | 0 | return EC; | 117 | 1.72k | } | 118 | 860 | return Error::success(); | 119 | 860 | } |
llvm::Error llvm::codeview::TypeVisitorCallbackPipeline::visitKnownMemberImpl<llvm::codeview::EnumeratorRecord>(llvm::codeview::CVMemberRecord&, llvm::codeview::EnumeratorRecord&) Line | Count | Source | 113 | 30.0k | Error visitKnownMemberImpl(CVMemberRecord &CVMR, T &Record) { | 114 | 60.0k | for (auto Visitor : Pipeline) { | 115 | 60.0k | if (auto EC = Visitor->visitKnownMember(CVMR, Record)) | 116 | 0 | return EC; | 117 | 60.0k | } | 118 | 30.0k | return Error::success(); | 119 | 30.0k | } |
llvm::Error llvm::codeview::TypeVisitorCallbackPipeline::visitKnownMemberImpl<llvm::codeview::ListContinuationRecord>(llvm::codeview::CVMemberRecord&, llvm::codeview::ListContinuationRecord&) Line | Count | Source | 113 | 20 | Error visitKnownMemberImpl(CVMemberRecord &CVMR, T &Record) { | 114 | 40 | for (auto Visitor : Pipeline) { | 115 | 40 | if (auto EC = Visitor->visitKnownMember(CVMR, Record)) | 116 | 0 | return EC; | 117 | 40 | } | 118 | 20 | return Error::success(); | 119 | 20 | } |
|
120 | | std::vector<TypeVisitorCallbacks *> Pipeline; |
121 | | }; |
122 | | |
123 | | } // end namespace codeview |
124 | | } // end namespace llvm |
125 | | |
126 | | #endif // LLVM_DEBUGINFO_CODEVIEW_TYPEVISITORCALLBACKPIPELINE_H |