Coverage Report

Created: 2019-07-24 05:18

/Users/buildslave/jenkins/workspace/clang-stage2-coverage-R/llvm/include/llvm/DebugInfo/CodeView/TypeVisitorCallbacks.h
Line
Count
Source (jump to first uncovered line)
1
//===- TypeVisitorCallbacks.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_TYPEVISITORCALLBACKS_H
10
#define LLVM_DEBUGINFO_CODEVIEW_TYPEVISITORCALLBACKS_H
11
12
#include "llvm/DebugInfo/CodeView/TypeRecord.h"
13
#include "llvm/Support/Error.h"
14
15
namespace llvm {
16
namespace codeview {
17
18
class TypeVisitorCallbacks {
19
public:
20
57.3k
  virtual ~TypeVisitorCallbacks() = default;
21
22
  /// Action to take on unknown types. By default, they are ignored.
23
0
  virtual Error visitUnknownType(CVType &Record) { return Error::success(); }
24
  /// Paired begin/end actions for all types. Receives all record data,
25
  /// including the fixed-length record prefix.  visitTypeBegin() should return
26
  /// the type of the Record, or an error if it cannot be determined.  Exactly
27
  /// one of the two visitTypeBegin methods will be called, depending on whether
28
  /// records are being visited sequentially or randomly.  An implementation
29
  /// should be prepared to handle both (or assert if it can't handle random
30
  /// access visitation).
31
0
  virtual Error visitTypeBegin(CVType &Record) { return Error::success(); }
32
0
  virtual Error visitTypeBegin(CVType &Record, TypeIndex Index) {
33
0
    return Error::success();
34
0
  }
35
14
  virtual Error visitTypeEnd(CVType &Record) { return Error::success(); }
36
37
180
  virtual Error visitUnknownMember(CVMemberRecord &Record) {
38
180
    return Error::success();
39
180
  }
40
41
1.38k
  virtual Error visitMemberBegin(CVMemberRecord &Record) {
42
1.38k
    return Error::success();
43
1.38k
  }
44
45
1.38k
  virtual Error visitMemberEnd(CVMemberRecord &Record) {
46
1.38k
    return Error::success();
47
1.38k
  }
48
49
#define TYPE_RECORD(EnumName, EnumVal, Name)                                   \
50
0
  virtual Error visitKnownRecord(CVType &CVR, Name##Record &Record) {          \
51
0
    return Error::success();                                                   \
52
0
  }
Unexecuted instantiation: llvm::codeview::TypeVisitorCallbacks::visitKnownRecord(llvm::codeview::CVRecord<llvm::codeview::TypeLeafKind>&, llvm::codeview::PointerRecord&)
Unexecuted instantiation: llvm::codeview::TypeVisitorCallbacks::visitKnownRecord(llvm::codeview::CVRecord<llvm::codeview::TypeLeafKind>&, llvm::codeview::ModifierRecord&)
Unexecuted instantiation: llvm::codeview::TypeVisitorCallbacks::visitKnownRecord(llvm::codeview::CVRecord<llvm::codeview::TypeLeafKind>&, llvm::codeview::ProcedureRecord&)
Unexecuted instantiation: llvm::codeview::TypeVisitorCallbacks::visitKnownRecord(llvm::codeview::CVRecord<llvm::codeview::TypeLeafKind>&, llvm::codeview::MemberFunctionRecord&)
Unexecuted instantiation: llvm::codeview::TypeVisitorCallbacks::visitKnownRecord(llvm::codeview::CVRecord<llvm::codeview::TypeLeafKind>&, llvm::codeview::LabelRecord&)
Unexecuted instantiation: llvm::codeview::TypeVisitorCallbacks::visitKnownRecord(llvm::codeview::CVRecord<llvm::codeview::TypeLeafKind>&, llvm::codeview::ArgListRecord&)
Unexecuted instantiation: llvm::codeview::TypeVisitorCallbacks::visitKnownRecord(llvm::codeview::CVRecord<llvm::codeview::TypeLeafKind>&, llvm::codeview::FieldListRecord&)
Unexecuted instantiation: llvm::codeview::TypeVisitorCallbacks::visitKnownRecord(llvm::codeview::CVRecord<llvm::codeview::TypeLeafKind>&, llvm::codeview::ArrayRecord&)
Unexecuted instantiation: llvm::codeview::TypeVisitorCallbacks::visitKnownRecord(llvm::codeview::CVRecord<llvm::codeview::TypeLeafKind>&, llvm::codeview::ClassRecord&)
Unexecuted instantiation: llvm::codeview::TypeVisitorCallbacks::visitKnownRecord(llvm::codeview::CVRecord<llvm::codeview::TypeLeafKind>&, llvm::codeview::UnionRecord&)
Unexecuted instantiation: llvm::codeview::TypeVisitorCallbacks::visitKnownRecord(llvm::codeview::CVRecord<llvm::codeview::TypeLeafKind>&, llvm::codeview::EnumRecord&)
Unexecuted instantiation: llvm::codeview::TypeVisitorCallbacks::visitKnownRecord(llvm::codeview::CVRecord<llvm::codeview::TypeLeafKind>&, llvm::codeview::TypeServer2Record&)
Unexecuted instantiation: llvm::codeview::TypeVisitorCallbacks::visitKnownRecord(llvm::codeview::CVRecord<llvm::codeview::TypeLeafKind>&, llvm::codeview::VFTableRecord&)
Unexecuted instantiation: llvm::codeview::TypeVisitorCallbacks::visitKnownRecord(llvm::codeview::CVRecord<llvm::codeview::TypeLeafKind>&, llvm::codeview::VFTableShapeRecord&)
Unexecuted instantiation: llvm::codeview::TypeVisitorCallbacks::visitKnownRecord(llvm::codeview::CVRecord<llvm::codeview::TypeLeafKind>&, llvm::codeview::BitFieldRecord&)
Unexecuted instantiation: llvm::codeview::TypeVisitorCallbacks::visitKnownRecord(llvm::codeview::CVRecord<llvm::codeview::TypeLeafKind>&, llvm::codeview::FuncIdRecord&)
Unexecuted instantiation: llvm::codeview::TypeVisitorCallbacks::visitKnownRecord(llvm::codeview::CVRecord<llvm::codeview::TypeLeafKind>&, llvm::codeview::MemberFuncIdRecord&)
Unexecuted instantiation: llvm::codeview::TypeVisitorCallbacks::visitKnownRecord(llvm::codeview::CVRecord<llvm::codeview::TypeLeafKind>&, llvm::codeview::BuildInfoRecord&)
Unexecuted instantiation: llvm::codeview::TypeVisitorCallbacks::visitKnownRecord(llvm::codeview::CVRecord<llvm::codeview::TypeLeafKind>&, llvm::codeview::StringListRecord&)
Unexecuted instantiation: llvm::codeview::TypeVisitorCallbacks::visitKnownRecord(llvm::codeview::CVRecord<llvm::codeview::TypeLeafKind>&, llvm::codeview::StringIdRecord&)
Unexecuted instantiation: llvm::codeview::TypeVisitorCallbacks::visitKnownRecord(llvm::codeview::CVRecord<llvm::codeview::TypeLeafKind>&, llvm::codeview::UdtSourceLineRecord&)
Unexecuted instantiation: llvm::codeview::TypeVisitorCallbacks::visitKnownRecord(llvm::codeview::CVRecord<llvm::codeview::TypeLeafKind>&, llvm::codeview::UdtModSourceLineRecord&)
Unexecuted instantiation: llvm::codeview::TypeVisitorCallbacks::visitKnownRecord(llvm::codeview::CVRecord<llvm::codeview::TypeLeafKind>&, llvm::codeview::MethodOverloadListRecord&)
Unexecuted instantiation: llvm::codeview::TypeVisitorCallbacks::visitKnownRecord(llvm::codeview::CVRecord<llvm::codeview::TypeLeafKind>&, llvm::codeview::PrecompRecord&)
Unexecuted instantiation: llvm::codeview::TypeVisitorCallbacks::visitKnownRecord(llvm::codeview::CVRecord<llvm::codeview::TypeLeafKind>&, llvm::codeview::EndPrecompRecord&)
53
#define MEMBER_RECORD(EnumName, EnumVal, Name)                                 \
54
0
  virtual Error visitKnownMember(CVMemberRecord &CVM, Name##Record &Record) {  \
55
0
    return Error::success();                                                   \
56
0
  }
Unexecuted instantiation: llvm::codeview::TypeVisitorCallbacks::visitKnownMember(llvm::codeview::CVMemberRecord&, llvm::codeview::BaseClassRecord&)
Unexecuted instantiation: llvm::codeview::TypeVisitorCallbacks::visitKnownMember(llvm::codeview::CVMemberRecord&, llvm::codeview::VirtualBaseClassRecord&)
Unexecuted instantiation: llvm::codeview::TypeVisitorCallbacks::visitKnownMember(llvm::codeview::CVMemberRecord&, llvm::codeview::VFPtrRecord&)
Unexecuted instantiation: llvm::codeview::TypeVisitorCallbacks::visitKnownMember(llvm::codeview::CVMemberRecord&, llvm::codeview::StaticDataMemberRecord&)
Unexecuted instantiation: llvm::codeview::TypeVisitorCallbacks::visitKnownMember(llvm::codeview::CVMemberRecord&, llvm::codeview::OverloadedMethodRecord&)
Unexecuted instantiation: llvm::codeview::TypeVisitorCallbacks::visitKnownMember(llvm::codeview::CVMemberRecord&, llvm::codeview::DataMemberRecord&)
Unexecuted instantiation: llvm::codeview::TypeVisitorCallbacks::visitKnownMember(llvm::codeview::CVMemberRecord&, llvm::codeview::NestedTypeRecord&)
Unexecuted instantiation: llvm::codeview::TypeVisitorCallbacks::visitKnownMember(llvm::codeview::CVMemberRecord&, llvm::codeview::OneMethodRecord&)
Unexecuted instantiation: llvm::codeview::TypeVisitorCallbacks::visitKnownMember(llvm::codeview::CVMemberRecord&, llvm::codeview::EnumeratorRecord&)
Unexecuted instantiation: llvm::codeview::TypeVisitorCallbacks::visitKnownMember(llvm::codeview::CVMemberRecord&, llvm::codeview::ListContinuationRecord&)
57
58
#define TYPE_RECORD_ALIAS(EnumName, EnumVal, Name, AliasName)
59
#define MEMBER_RECORD_ALIAS(EnumName, EnumVal, Name, AliasName)
60
#include "llvm/DebugInfo/CodeView/CodeViewTypes.def"
61
#undef TYPE_RECORD
62
#undef TYPE_RECORD_ALIAS
63
#undef MEMBER_RECORD
64
#undef MEMBER_RECORD_ALIAS
65
};
66
67
} // end namespace codeview
68
} // end namespace llvm
69
70
#endif // LLVM_DEBUGINFO_CODEVIEW_TYPEVISITORCALLBACKS_H