Coverage Report

Created: 2019-07-24 05:18

/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