Coverage Report

Created: 2019-02-23 12:57

/Users/buildslave/jenkins/workspace/clang-stage2-coverage-R/llvm/tools/clang/include/clang/AST/TypeVisitor.h
Line
Count
Source (jump to first uncovered line)
1
//===--- TypeVisitor.h - Visitor for Type subclasses ------------*- 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
//  This file defines the TypeVisitor interface.
10
//
11
//===----------------------------------------------------------------------===//
12
13
#ifndef LLVM_CLANG_AST_TYPEVISITOR_H
14
#define LLVM_CLANG_AST_TYPEVISITOR_H
15
16
#include "clang/AST/Type.h"
17
18
namespace clang {
19
20
#define DISPATCH(CLASS) \
21
168M
  return static_cast<ImplClass*>(this)-> \
22
168M
           Visit##CLASS(static_cast<const CLASS*>(T))
23
24
/// An operation on a type.
25
///
26
/// \tparam ImplClass Class implementing the operation. Must be inherited from
27
///         TypeVisitor.
28
/// \tparam RetTy %Type of result produced by the operation.
29
///
30
/// The class implements polymorphic operation on an object of type derived
31
/// from Type. The operation is performed by calling method Visit. It then
32
/// dispatches the call to function \c VisitFooType, if actual argument type
33
/// is \c FooType.
34
///
35
/// The class implements static polymorphism using Curiously Recurring
36
/// Template Pattern. It is designed to be a base class for some concrete
37
/// class:
38
///
39
/// \code
40
///     class SomeVisitor : public TypeVisitor<SomeVisitor,sometype> { ... };
41
///     ...
42
///     Type *atype = ...
43
///     ...
44
///     SomeVisitor avisitor;
45
///     sometype result = avisitor.Visit(atype);
46
/// \endcode
47
///
48
/// Actual treatment is made by methods of the derived class, TypeVisitor only
49
/// dispatches call to the appropriate method. If the implementation class
50
/// \c ImplClass provides specific action for some type, say
51
/// \c ConstantArrayType, it should define method
52
/// <tt>VisitConstantArrayType(const ConstantArrayType*)</tt>. Otherwise
53
/// \c TypeVisitor dispatches call to the method that handles parent type. In
54
/// this example handlers are tried in the sequence:
55
///
56
/// \li <tt>ImplClass::VisitConstantArrayType(const ConstantArrayType*)</tt>
57
/// \li <tt>ImplClass::VisitArrayType(const ArrayType*)</tt>
58
/// \li <tt>ImplClass::VisitType(const Type*)</tt>
59
/// \li <tt>TypeVisitor::VisitType(const Type*)</tt>
60
///
61
/// The first function of this sequence that is defined will handle object of
62
/// type \c ConstantArrayType.
63
template<typename ImplClass, typename RetTy=void>
64
class TypeVisitor {
65
public:
66
67
  /// Performs the operation associated with this visitor object.
68
61.4M
  RetTy Visit(const Type *T) {
69
61.4M
    // Top switch stmt: dispatch to VisitFooType for each FooType.
70
61.4M
    switch (T->getTypeClass()) {
71
61.4M
#define ABSTRACT_TYPE(CLASS, PARENT)
72
122M
#define TYPE(CLASS, PARENT) 
case Type::CLASS: 61.4M
DISPATCH(CLASS##Type);
73
61.4M
#include 
"clang/AST/TypeNodes.def"16.5M
74
61.4M
    }
75
61.4M
    
llvm_unreachable0
("Unknown type class!");
76
61.4M
  }
SemaTemplate.cpp:clang::TypeVisitor<(anonymous namespace)::UnnamedLocalNoLinkageFinder, bool>::Visit(clang::Type const*)
Line
Count
Source
68
13.1M
  RetTy Visit(const Type *T) {
69
13.1M
    // Top switch stmt: dispatch to VisitFooType for each FooType.
70
13.1M
    switch (T->getTypeClass()) {
71
13.1M
#define ABSTRACT_TYPE(CLASS, PARENT)
72
13.1M
#define TYPE(CLASS, PARENT) case Type::CLASS: DISPATCH(CLASS##Type);
73
13.1M
#include 
"clang/AST/TypeNodes.def"2.41M
74
13.1M
    }
75
13.1M
    
llvm_unreachable0
("Unknown type class!");
76
  }
ASTDumper.cpp:clang::TypeVisitor<(anonymous namespace)::ASTDumper, void>::Visit(clang::Type const*)
Line
Count
Source
68
1.12k
  RetTy Visit(const Type *T) {
69
1.12k
    // Top switch stmt: dispatch to VisitFooType for each FooType.
70
1.12k
    switch (T->getTypeClass()) {
71
1.12k
#define ABSTRACT_TYPE(CLASS, PARENT)
72
1.12k
#define TYPE(CLASS, PARENT) case Type::CLASS: DISPATCH(CLASS##Type);
73
1.12k
#include 
"clang/AST/TypeNodes.def"465
74
1.12k
    }
75
1.12k
    
llvm_unreachable0
("Unknown type class!");
76
  }
clang::TypeVisitor<clang::ASTNodeImporter, llvm::Expected<clang::QualType> >::Visit(clang::Type const*)
Line
Count
Source
68
6.08k
  RetTy Visit(const Type *T) {
69
6.08k
    // Top switch stmt: dispatch to VisitFooType for each FooType.
70
6.08k
    switch (T->getTypeClass()) {
71
6.08k
#define ABSTRACT_TYPE(CLASS, PARENT)
72
6.08k
#define TYPE(CLASS, PARENT) case Type::CLASS: DISPATCH(CLASS##Type);
73
6.08k
#include 
"clang/AST/TypeNodes.def"1.94k
74
6.08k
    }
75
6.08k
    
llvm_unreachable0
("Unknown type class!");
76
  }
ODRHash.cpp:clang::TypeVisitor<(anonymous namespace)::ODRTypeVisitor, void>::Visit(clang::Type const*)
Line
Count
Source
68
834k
  RetTy Visit(const Type *T) {
69
834k
    // Top switch stmt: dispatch to VisitFooType for each FooType.
70
834k
    switch (T->getTypeClass()) {
71
834k
#define ABSTRACT_TYPE(CLASS, PARENT)
72
834k
#define TYPE(CLASS, PARENT) case Type::CLASS: DISPATCH(CLASS##Type);
73
834k
#include 
"clang/AST/TypeNodes.def"306k
74
834k
    }
75
834k
    
llvm_unreachable0
("Unknown type class!");
76
  }
clang::TypeVisitor<clang::TextNodeDumper, void>::Visit(clang::Type const*)
Line
Count
Source
68
1.12k
  RetTy Visit(const Type *T) {
69
1.12k
    // Top switch stmt: dispatch to VisitFooType for each FooType.
70
1.12k
    switch (T->getTypeClass()) {
71
1.12k
#define ABSTRACT_TYPE(CLASS, PARENT)
72
1.12k
#define TYPE(CLASS, PARENT) case Type::CLASS: DISPATCH(CLASS##Type);
73
1.12k
#include 
"clang/AST/TypeNodes.def"465
74
1.12k
    }
75
1.12k
    
llvm_unreachable0
("Unknown type class!");
76
  }
Type.cpp:clang::TypeVisitor<(anonymous namespace)::SubstObjCTypeArgsVisitor, clang::QualType>::Visit(clang::Type const*)
Line
Count
Source
68
1.50k
  RetTy Visit(const Type *T) {
69
1.50k
    // Top switch stmt: dispatch to VisitFooType for each FooType.
70
1.50k
    switch (T->getTypeClass()) {
71
1.50k
#define ABSTRACT_TYPE(CLASS, PARENT)
72
1.50k
#define TYPE(CLASS, PARENT) case Type::CLASS: DISPATCH(CLASS##Type);
73
1.50k
#include 
"clang/AST/TypeNodes.def"332
74
1.50k
    }
75
1.50k
    
llvm_unreachable0
("Unknown type class!");
76
  }
Type.cpp:clang::TypeVisitor<(anonymous namespace)::StripObjCKindOfTypeVisitor, clang::QualType>::Visit(clang::Type const*)
Line
Count
Source
68
498
  RetTy Visit(const Type *T) {
69
498
    // Top switch stmt: dispatch to VisitFooType for each FooType.
70
498
    switch (T->getTypeClass()) {
71
498
#define ABSTRACT_TYPE(CLASS, PARENT)
72
498
#define TYPE(CLASS, PARENT) case Type::CLASS: DISPATCH(CLASS##Type);
73
498
#include 
"clang/AST/TypeNodes.def"64
74
498
    }
75
498
    
llvm_unreachable0
("Unknown type class!");
76
  }
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::Visit(clang::Type const*)
Line
Count
Source
68
47.5M
  RetTy Visit(const Type *T) {
69
47.5M
    // Top switch stmt: dispatch to VisitFooType for each FooType.
70
47.5M
    switch (T->getTypeClass()) {
71
47.5M
#define ABSTRACT_TYPE(CLASS, PARENT)
72
47.5M
#define TYPE(CLASS, PARENT) case Type::CLASS: DISPATCH(CLASS##Type);
73
47.5M
#include 
"clang/AST/TypeNodes.def"13.8M
74
47.5M
    }
75
47.5M
    
llvm_unreachable0
("Unknown type class!");
76
  }
77
78
  // If the implementation chooses not to implement a certain visit method, fall
79
  // back on superclass.
80
45.6M
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
81
45.6M
  DISPATCH(PARENT);                                                          \
82
45.6M
}
ASTDumper.cpp:clang::TypeVisitor<(anonymous namespace)::ASTDumper, void>::VisitBuiltinType(clang::BuiltinType const*)
Line
Count
Source
80
465
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
81
465
  DISPATCH(PARENT);                                                          \
82
465
}
ASTDumper.cpp:clang::TypeVisitor<(anonymous namespace)::ASTDumper, void>::VisitLValueReferenceType(clang::LValueReferenceType const*)
Line
Count
Source
80
3
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
81
3
  DISPATCH(PARENT);                                                          \
82
3
}
Unexecuted instantiation: ASTDumper.cpp:clang::TypeVisitor<(anonymous namespace)::ASTDumper, void>::VisitRValueReferenceType(clang::RValueReferenceType const*)
ASTDumper.cpp:clang::TypeVisitor<(anonymous namespace)::ASTDumper, void>::VisitConstantArrayType(clang::ConstantArrayType const*)
Line
Count
Source
80
99
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
81
99
  DISPATCH(PARENT);                                                          \
82
99
}
Unexecuted instantiation: ASTDumper.cpp:clang::TypeVisitor<(anonymous namespace)::ASTDumper, void>::VisitIncompleteArrayType(clang::IncompleteArrayType const*)
Unexecuted instantiation: ASTDumper.cpp:clang::TypeVisitor<(anonymous namespace)::ASTDumper, void>::VisitDependentAddressSpaceType(clang::DependentAddressSpaceType const*)
Unexecuted instantiation: ASTDumper.cpp:clang::TypeVisitor<(anonymous namespace)::ASTDumper, void>::VisitDependentVectorType(clang::DependentVectorType const*)
ASTDumper.cpp:clang::TypeVisitor<(anonymous namespace)::ASTDumper, void>::VisitExtVectorType(clang::ExtVectorType const*)
Line
Count
Source
80
5
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
81
5
  DISPATCH(PARENT);                                                          \
82
5
}
Unexecuted instantiation: ASTDumper.cpp:clang::TypeVisitor<(anonymous namespace)::ASTDumper, void>::VisitFunctionNoProtoType(clang::FunctionNoProtoType const*)
Unexecuted instantiation: ASTDumper.cpp:clang::TypeVisitor<(anonymous namespace)::ASTDumper, void>::VisitUnresolvedUsingType(clang::UnresolvedUsingType const*)
Unexecuted instantiation: ASTDumper.cpp:clang::TypeVisitor<(anonymous namespace)::ASTDumper, void>::VisitParenType(clang::ParenType const*)
ASTDumper.cpp:clang::TypeVisitor<(anonymous namespace)::ASTDumper, void>::VisitTypedefType(clang::TypedefType const*)
Line
Count
Source
80
9
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
81
9
  DISPATCH(PARENT);                                                          \
82
9
}
Unexecuted instantiation: ASTDumper.cpp:clang::TypeVisitor<(anonymous namespace)::ASTDumper, void>::VisitDecayedType(clang::DecayedType const*)
Unexecuted instantiation: ASTDumper.cpp:clang::TypeVisitor<(anonymous namespace)::ASTDumper, void>::VisitTypeOfType(clang::TypeOfType const*)
ASTDumper.cpp:clang::TypeVisitor<(anonymous namespace)::ASTDumper, void>::VisitRecordType(clang::RecordType const*)
Line
Count
Source
80
233
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
81
233
  DISPATCH(PARENT);                                                          \
82
233
}
ASTDumper.cpp:clang::TypeVisitor<(anonymous namespace)::ASTDumper, void>::VisitTagType(clang::TagType const*)
Line
Count
Source
80
235
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
81
235
  DISPATCH(PARENT);                                                          \
82
235
}
ASTDumper.cpp:clang::TypeVisitor<(anonymous namespace)::ASTDumper, void>::VisitEnumType(clang::EnumType const*)
Line
Count
Source
80
2
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
81
2
  DISPATCH(PARENT);                                                          \
82
2
}
ASTDumper.cpp:clang::TypeVisitor<(anonymous namespace)::ASTDumper, void>::VisitElaboratedType(clang::ElaboratedType const*)
Line
Count
Source
80
9
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
81
9
  DISPATCH(PARENT);                                                          \
82
9
}
ASTDumper.cpp:clang::TypeVisitor<(anonymous namespace)::ASTDumper, void>::VisitTemplateTypeParmType(clang::TemplateTypeParmType const*)
Line
Count
Source
80
14
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
81
14
  DISPATCH(PARENT);                                                          \
82
14
}
Unexecuted instantiation: ASTDumper.cpp:clang::TypeVisitor<(anonymous namespace)::ASTDumper, void>::VisitAutoType(clang::AutoType const*)
Unexecuted instantiation: ASTDumper.cpp:clang::TypeVisitor<(anonymous namespace)::ASTDumper, void>::VisitDeducedType(clang::DeducedType const*)
Unexecuted instantiation: ASTDumper.cpp:clang::TypeVisitor<(anonymous namespace)::ASTDumper, void>::VisitDeducedTemplateSpecializationType(clang::DeducedTemplateSpecializationType const*)
Unexecuted instantiation: ASTDumper.cpp:clang::TypeVisitor<(anonymous namespace)::ASTDumper, void>::VisitInjectedClassNameType(clang::InjectedClassNameType const*)
ASTDumper.cpp:clang::TypeVisitor<(anonymous namespace)::ASTDumper, void>::VisitDependentNameType(clang::DependentNameType const*)
Line
Count
Source
80
7
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
81
7
  DISPATCH(PARENT);                                                          \
82
7
}
Unexecuted instantiation: ASTDumper.cpp:clang::TypeVisitor<(anonymous namespace)::ASTDumper, void>::VisitDependentTemplateSpecializationType(clang::DependentTemplateSpecializationType const*)
Unexecuted instantiation: ASTDumper.cpp:clang::TypeVisitor<(anonymous namespace)::ASTDumper, void>::VisitObjCTypeParamType(clang::ObjCTypeParamType const*)
ASTDumper.cpp:clang::TypeVisitor<(anonymous namespace)::ASTDumper, void>::VisitObjCObjectType(clang::ObjCObjectType const*)
Line
Count
Source
80
40
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
81
40
  DISPATCH(PARENT);                                                          \
82
40
}
Unexecuted instantiation: ASTDumper.cpp:clang::TypeVisitor<(anonymous namespace)::ASTDumper, void>::VisitObjCInterfaceType(clang::ObjCInterfaceType const*)
Unexecuted instantiation: clang::TypeVisitor<clang::ASTNodeImporter, llvm::Expected<clang::QualType> >::VisitDependentSizedExtVectorType(clang::DependentSizedExtVectorType const*)
Unexecuted instantiation: clang::TypeVisitor<clang::ASTNodeImporter, llvm::Expected<clang::QualType> >::VisitDependentAddressSpaceType(clang::DependentAddressSpaceType const*)
Unexecuted instantiation: clang::TypeVisitor<clang::ASTNodeImporter, llvm::Expected<clang::QualType> >::VisitDependentVectorType(clang::DependentVectorType const*)
Unexecuted instantiation: clang::TypeVisitor<clang::ASTNodeImporter, llvm::Expected<clang::QualType> >::VisitAdjustedType(clang::AdjustedType const*)
Unexecuted instantiation: clang::TypeVisitor<clang::ASTNodeImporter, llvm::Expected<clang::QualType> >::VisitSubstTemplateTypeParmPackType(clang::SubstTemplateTypeParmPackType const*)
Unexecuted instantiation: clang::TypeVisitor<clang::ASTNodeImporter, llvm::Expected<clang::QualType> >::VisitDeducedTemplateSpecializationType(clang::DeducedTemplateSpecializationType const*)
Unexecuted instantiation: clang::TypeVisitor<clang::ASTNodeImporter, llvm::Expected<clang::QualType> >::VisitDeducedType(clang::DeducedType const*)
Unexecuted instantiation: clang::TypeVisitor<clang::ASTNodeImporter, llvm::Expected<clang::QualType> >::VisitObjCTypeParamType(clang::ObjCTypeParamType const*)
Unexecuted instantiation: clang::TypeVisitor<clang::ASTNodeImporter, llvm::Expected<clang::QualType> >::VisitPipeType(clang::PipeType const*)
Unexecuted instantiation: ODRHash.cpp:clang::TypeVisitor<(anonymous namespace)::ODRTypeVisitor, void>::VisitDependentVectorType(clang::DependentVectorType const*)
ODRHash.cpp:clang::TypeVisitor<(anonymous namespace)::ODRTypeVisitor, void>::VisitAtomicType(clang::AtomicType const*)
Line
Count
Source
80
520
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
81
520
  DISPATCH(PARENT);                                                          \
82
520
}
clang::TypeVisitor<clang::TextNodeDumper, void>::VisitBuiltinType(clang::BuiltinType const*)
Line
Count
Source
80
465
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
81
465
  DISPATCH(PARENT);                                                          \
82
465
}
Unexecuted instantiation: clang::TypeVisitor<clang::TextNodeDumper, void>::VisitComplexType(clang::ComplexType const*)
clang::TypeVisitor<clang::TextNodeDumper, void>::VisitPointerType(clang::PointerType const*)
Line
Count
Source
80
139
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
81
139
  DISPATCH(PARENT);                                                          \
82
139
}
Unexecuted instantiation: clang::TypeVisitor<clang::TextNodeDumper, void>::VisitBlockPointerType(clang::BlockPointerType const*)
clang::TypeVisitor<clang::TextNodeDumper, void>::VisitLValueReferenceType(clang::LValueReferenceType const*)
Line
Count
Source
80
3
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
81
3
  DISPATCH(PARENT);                                                          \
82
3
}
clang::TypeVisitor<clang::TextNodeDumper, void>::VisitReferenceType(clang::ReferenceType const*)
Line
Count
Source
80
3
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
81
3
  DISPATCH(PARENT);                                                          \
82
3
}
Unexecuted instantiation: clang::TypeVisitor<clang::TextNodeDumper, void>::VisitMemberPointerType(clang::MemberPointerType const*)
Unexecuted instantiation: clang::TypeVisitor<clang::TextNodeDumper, void>::VisitIncompleteArrayType(clang::IncompleteArrayType const*)
Unexecuted instantiation: clang::TypeVisitor<clang::TextNodeDumper, void>::VisitDependentAddressSpaceType(clang::DependentAddressSpaceType const*)
Unexecuted instantiation: clang::TypeVisitor<clang::TextNodeDumper, void>::VisitDependentVectorType(clang::DependentVectorType const*)
clang::TypeVisitor<clang::TextNodeDumper, void>::VisitExtVectorType(clang::ExtVectorType const*)
Line
Count
Source
80
5
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
81
5
  DISPATCH(PARENT);                                                          \
82
5
}
Unexecuted instantiation: clang::TypeVisitor<clang::TextNodeDumper, void>::VisitFunctionNoProtoType(clang::FunctionNoProtoType const*)
Unexecuted instantiation: clang::TypeVisitor<clang::TextNodeDumper, void>::VisitParenType(clang::ParenType const*)
Unexecuted instantiation: clang::TypeVisitor<clang::TextNodeDumper, void>::VisitAdjustedType(clang::AdjustedType const*)
Unexecuted instantiation: clang::TypeVisitor<clang::TextNodeDumper, void>::VisitDecayedType(clang::DecayedType const*)
clang::TypeVisitor<clang::TextNodeDumper, void>::VisitTypeOfExprType(clang::TypeOfExprType const*)
Line
Count
Source
80
18
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
81
18
  DISPATCH(PARENT);                                                          \
82
18
}
Unexecuted instantiation: clang::TypeVisitor<clang::TextNodeDumper, void>::VisitTypeOfType(clang::TypeOfType const*)
clang::TypeVisitor<clang::TextNodeDumper, void>::VisitDecltypeType(clang::DecltypeType const*)
Line
Count
Source
80
3
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
81
3
  DISPATCH(PARENT);                                                          \
82
3
}
clang::TypeVisitor<clang::TextNodeDumper, void>::VisitRecordType(clang::RecordType const*)
Line
Count
Source
80
233
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
81
233
  DISPATCH(PARENT);                                                          \
82
233
}
clang::TypeVisitor<clang::TextNodeDumper, void>::VisitEnumType(clang::EnumType const*)
Line
Count
Source
80
2
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
81
2
  DISPATCH(PARENT);                                                          \
82
2
}
clang::TypeVisitor<clang::TextNodeDumper, void>::VisitElaboratedType(clang::ElaboratedType const*)
Line
Count
Source
80
9
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
81
9
  DISPATCH(PARENT);                                                          \
82
9
}
Unexecuted instantiation: clang::TypeVisitor<clang::TextNodeDumper, void>::VisitAttributedType(clang::AttributedType const*)
clang::TypeVisitor<clang::TextNodeDumper, void>::VisitSubstTemplateTypeParmType(clang::SubstTemplateTypeParmType const*)
Line
Count
Source
80
8
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
81
8
  DISPATCH(PARENT);                                                          \
82
8
}
Unexecuted instantiation: clang::TypeVisitor<clang::TextNodeDumper, void>::VisitSubstTemplateTypeParmPackType(clang::SubstTemplateTypeParmPackType const*)
Unexecuted instantiation: clang::TypeVisitor<clang::TextNodeDumper, void>::VisitDeducedTemplateSpecializationType(clang::DeducedTemplateSpecializationType const*)
Unexecuted instantiation: clang::TypeVisitor<clang::TextNodeDumper, void>::VisitDeducedType(clang::DeducedType const*)
clang::TypeVisitor<clang::TextNodeDumper, void>::VisitDependentNameType(clang::DependentNameType const*)
Line
Count
Source
80
7
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
81
7
  DISPATCH(PARENT);                                                          \
82
7
}
Unexecuted instantiation: clang::TypeVisitor<clang::TextNodeDumper, void>::VisitDependentTemplateSpecializationType(clang::DependentTemplateSpecializationType const*)
Unexecuted instantiation: clang::TypeVisitor<clang::TextNodeDumper, void>::VisitObjCTypeParamType(clang::ObjCTypeParamType const*)
clang::TypeVisitor<clang::TextNodeDumper, void>::VisitObjCObjectType(clang::ObjCObjectType const*)
Line
Count
Source
80
40
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
81
40
  DISPATCH(PARENT);                                                          \
82
40
}
clang::TypeVisitor<clang::TextNodeDumper, void>::VisitObjCObjectPointerType(clang::ObjCObjectPointerType const*)
Line
Count
Source
80
40
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
81
40
  DISPATCH(PARENT);                                                          \
82
40
}
clang::TypeVisitor<clang::TextNodeDumper, void>::VisitPipeType(clang::PipeType const*)
Line
Count
Source
80
3
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
81
3
  DISPATCH(PARENT);                                                          \
82
3
}
clang::TypeVisitor<clang::TextNodeDumper, void>::VisitAtomicType(clang::AtomicType const*)
Line
Count
Source
80
5
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
81
5
  DISPATCH(PARENT);                                                          \
82
5
}
Unexecuted instantiation: Type.cpp:clang::TypeVisitor<(anonymous namespace)::SubstObjCTypeArgsVisitor, clang::QualType>::VisitDeducedTemplateSpecializationType(clang::DeducedTemplateSpecializationType const*)
Unexecuted instantiation: Type.cpp:clang::TypeVisitor<(anonymous namespace)::SubstObjCTypeArgsVisitor, clang::QualType>::VisitDeducedType(clang::DeducedType const*)
Unexecuted instantiation: Type.cpp:clang::TypeVisitor<(anonymous namespace)::SubstObjCTypeArgsVisitor, clang::QualType>::VisitPipeType(clang::PipeType const*)
Unexecuted instantiation: Type.cpp:clang::TypeVisitor<(anonymous namespace)::StripObjCKindOfTypeVisitor, clang::QualType>::VisitDeducedTemplateSpecializationType(clang::DeducedTemplateSpecializationType const*)
Unexecuted instantiation: Type.cpp:clang::TypeVisitor<(anonymous namespace)::StripObjCKindOfTypeVisitor, clang::QualType>::VisitDeducedType(clang::DeducedType const*)
Unexecuted instantiation: Type.cpp:clang::TypeVisitor<(anonymous namespace)::StripObjCKindOfTypeVisitor, clang::QualType>::VisitPipeType(clang::PipeType const*)
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitBuiltinType(clang::BuiltinType const*)
Line
Count
Source
80
13.8M
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
81
13.8M
  DISPATCH(PARENT);                                                          \
82
13.8M
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitComplexType(clang::ComplexType const*)
Line
Count
Source
80
12.8k
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
81
12.8k
  DISPATCH(PARENT);                                                          \
82
12.8k
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitLValueReferenceType(clang::LValueReferenceType const*)
Line
Count
Source
80
351k
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
81
351k
  DISPATCH(PARENT);                                                          \
82
351k
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitRValueReferenceType(clang::RValueReferenceType const*)
Line
Count
Source
80
30.8k
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
81
30.8k
  DISPATCH(PARENT);                                                          \
82
30.8k
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitConstantArrayType(clang::ConstantArrayType const*)
Line
Count
Source
80
155k
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
81
155k
  DISPATCH(PARENT);                                                          \
82
155k
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitIncompleteArrayType(clang::IncompleteArrayType const*)
Line
Count
Source
80
64.6k
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
81
64.6k
  DISPATCH(PARENT);                                                          \
82
64.6k
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitVariableArrayType(clang::VariableArrayType const*)
Line
Count
Source
80
15.3k
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
81
15.3k
  DISPATCH(PARENT);                                                          \
82
15.3k
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitDependentSizedArrayType(clang::DependentSizedArrayType const*)
Line
Count
Source
80
5.72k
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
81
5.72k
  DISPATCH(PARENT);                                                          \
82
5.72k
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitDependentAddressSpaceType(clang::DependentAddressSpaceType const*)
Line
Count
Source
80
86
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
81
86
  DISPATCH(PARENT);                                                          \
82
86
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitDependentVectorType(clang::DependentVectorType const*)
Line
Count
Source
80
12
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
81
12
  DISPATCH(PARENT);                                                          \
82
12
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitExtVectorType(clang::ExtVectorType const*)
Line
Count
Source
80
1.33k
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
81
1.33k
  DISPATCH(PARENT);                                                          \
82
1.33k
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitFunctionNoProtoType(clang::FunctionNoProtoType const*)
Line
Count
Source
80
1.44k
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
81
1.44k
  DISPATCH(PARENT);                                                          \
82
1.44k
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitUnresolvedUsingType(clang::UnresolvedUsingType const*)
Line
Count
Source
80
50
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
81
50
  DISPATCH(PARENT);                                                          \
82
50
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitTypedefType(clang::TypedefType const*)
Line
Count
Source
80
19.4M
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
81
19.4M
  DISPATCH(PARENT);                                                          \
82
19.4M
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitDecayedType(clang::DecayedType const*)
Line
Count
Source
80
258
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
81
258
  DISPATCH(PARENT);                                                          \
82
258
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitTypeOfExprType(clang::TypeOfExprType const*)
Line
Count
Source
80
3.30k
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
81
3.30k
  DISPATCH(PARENT);                                                          \
82
3.30k
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitTypeOfType(clang::TypeOfType const*)
Line
Count
Source
80
121
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
81
121
  DISPATCH(PARENT);                                                          \
82
121
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitDecltypeType(clang::DecltypeType const*)
Line
Count
Source
80
69.6k
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
81
69.6k
  DISPATCH(PARENT);                                                          \
82
69.6k
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitUnaryTransformType(clang::UnaryTransformType const*)
Line
Count
Source
80
662
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
81
662
  DISPATCH(PARENT);                                                          \
82
662
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitRecordType(clang::RecordType const*)
Line
Count
Source
80
2.02M
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
81
2.02M
  DISPATCH(PARENT);                                                          \
82
2.02M
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitTagType(clang::TagType const*)
Line
Count
Source
80
2.23M
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
81
2.23M
  DISPATCH(PARENT);                                                          \
82
2.23M
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitEnumType(clang::EnumType const*)
Line
Count
Source
80
212k
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
81
212k
  DISPATCH(PARENT);                                                          \
82
212k
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitTemplateTypeParmType(clang::TemplateTypeParmType const*)
Line
Count
Source
80
4.28M
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
81
4.28M
  DISPATCH(PARENT);                                                          \
82
4.28M
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitSubstTemplateTypeParmType(clang::SubstTemplateTypeParmType const*)
Line
Count
Source
80
291k
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
81
291k
  DISPATCH(PARENT);                                                          \
82
291k
}
Unexecuted instantiation: Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitSubstTemplateTypeParmPackType(clang::SubstTemplateTypeParmPackType const*)
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitTemplateSpecializationType(clang::TemplateSpecializationType const*)
Line
Count
Source
80
1.24M
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
81
1.24M
  DISPATCH(PARENT);                                                          \
82
1.24M
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitAutoType(clang::AutoType const*)
Line
Count
Source
80
141k
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
81
141k
  DISPATCH(PARENT);                                                          \
82
141k
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitDeducedTemplateSpecializationType(clang::DeducedTemplateSpecializationType const*)
Line
Count
Source
80
1.33k
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
81
1.33k
  DISPATCH(PARENT);                                                          \
82
1.33k
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitInjectedClassNameType(clang::InjectedClassNameType const*)
Line
Count
Source
80
359k
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
81
359k
  DISPATCH(PARENT);                                                          \
82
359k
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitDependentNameType(clang::DependentNameType const*)
Line
Count
Source
80
706k
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
81
706k
  DISPATCH(PARENT);                                                          \
82
706k
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitDependentTemplateSpecializationType(clang::DependentTemplateSpecializationType const*)
Line
Count
Source
80
3.75k
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
81
3.75k
  DISPATCH(PARENT);                                                          \
82
3.75k
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitPackExpansionType(clang::PackExpansionType const*)
Line
Count
Source
80
79
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
81
79
  DISPATCH(PARENT);                                                          \
82
79
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitObjCTypeParamType(clang::ObjCTypeParamType const*)
Line
Count
Source
80
5.83k
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
81
5.83k
  DISPATCH(PARENT);                                                          \
82
5.83k
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitObjCObjectType(clang::ObjCObjectType const*)
Line
Count
Source
80
74.2k
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
81
74.2k
  DISPATCH(PARENT);                                                          \
82
74.2k
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitObjCInterfaceType(clang::ObjCInterfaceType const*)
Line
Count
Source
80
66.3k
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
81
66.3k
  DISPATCH(PARENT);                                                          \
82
66.3k
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitObjCObjectPointerType(clang::ObjCObjectPointerType const*)
Line
Count
Source
80
23.1k
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
81
23.1k
  DISPATCH(PARENT);                                                          \
82
23.1k
}
Unexecuted instantiation: Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitPipeType(clang::PipeType const*)
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitAtomicType(clang::AtomicType const*)
Line
Count
Source
80
8.07k
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
81
8.07k
  DISPATCH(PARENT);                                                          \
82
8.07k
}
Unexecuted instantiation: Type.cpp:clang::TypeVisitor<(anonymous namespace)::SubstObjCTypeArgsVisitor, clang::QualType>::VisitFunctionType(clang::FunctionType const*)
83
#include "clang/AST/TypeNodes.def"
84
85
  /// Method called if \c ImpClass doesn't provide specific handler
86
  /// for some type class.
87
42.5M
  RetTy VisitType(const Type*) { return RetTy(); }
ASTDumper.cpp:clang::TypeVisitor<(anonymous namespace)::ASTDumper, void>::VisitType(clang::Type const*)
Line
Count
Source
87
779
  RetTy VisitType(const Type*) { return RetTy(); }
clang::TypeVisitor<clang::TextNodeDumper, void>::VisitType(clang::Type const*)
Line
Count
Source
87
740
  RetTy VisitType(const Type*) { return RetTy(); }
Unexecuted instantiation: Type.cpp:clang::TypeVisitor<(anonymous namespace)::SubstObjCTypeArgsVisitor, clang::QualType>::VisitType(clang::Type const*)
Unexecuted instantiation: Type.cpp:clang::TypeVisitor<(anonymous namespace)::StripObjCKindOfTypeVisitor, clang::QualType>::VisitType(clang::Type const*)
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitType(clang::Type const*)
Line
Count
Source
87
42.5M
  RetTy VisitType(const Type*) { return RetTy(); }
88
};
89
90
#undef DISPATCH
91
92
}  // end namespace clang
93
94
#endif