Coverage Report

Created: 2018-07-19 20:53

/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
//                     The LLVM Compiler Infrastructure
4
//
5
// This file is distributed under the University of Illinois Open Source
6
// License. See LICENSE.TXT for details.
7
//
8
//===----------------------------------------------------------------------===//
9
//
10
//  This file defines the TypeVisitor interface.
11
//
12
//===----------------------------------------------------------------------===//
13
14
#ifndef LLVM_CLANG_AST_TYPEVISITOR_H
15
#define LLVM_CLANG_AST_TYPEVISITOR_H
16
17
#include "clang/AST/Type.h"
18
19
namespace clang {
20
21
#define DISPATCH(CLASS) \
22
153M
  return static_cast<ImplClass*>(this)-> \
23
153M
           Visit##CLASS(static_cast<const CLASS*>(T))
24
25
/// An operation on a type.
26
///
27
/// \tparam ImplClass Class implementing the operation. Must be inherited from
28
///         TypeVisitor.
29
/// \tparam RetTy %Type of result produced by the operation.
30
///
31
/// The class implements polymorphic operation on an object of type derived
32
/// from Type. The operation is performed by calling method Visit. It then
33
/// dispatches the call to function \c VisitFooType, if actual argument type
34
/// is \c FooType.
35
///
36
/// The class implements static polymorphism using Curiously Recurring
37
/// Template Pattern. It is designed to be a base class for some concrete
38
/// class:
39
///
40
/// \code
41
///     class SomeVisitor : public TypeVisitor<SomeVisitor,sometype> { ... };
42
///     ...
43
///     Type *atype = ...
44
///     ...
45
///     SomeVisitor avisitor;
46
///     sometype result = avisitor.Visit(atype);
47
/// \endcode
48
///
49
/// Actual treatment is made by methods of the derived class, TypeVisitor only
50
/// dispatches call to the appropriate method. If the implementation class
51
/// \c ImplClass provides specific action for some type, say
52
/// \c ConstantArrayType, it should define method
53
/// <tt>VisitConstantArrayType(const ConstantArrayType*)</tt>. Otherwise
54
/// \c TypeVisitor dispatches call to the method that handles parent type. In
55
/// this example handlers are tried in the sequence:
56
///
57
/// \li <tt>ImplClass::VisitConstantArrayType(const ConstantArrayType*)</tt>
58
/// \li <tt>ImplClass::VisitArrayType(const ArrayType*)</tt>
59
/// \li <tt>ImplClass::VisitType(const Type*)</tt>
60
/// \li <tt>TypeVisitor::VisitType(const Type*)</tt>
61
///
62
/// The first function of this sequence that is defined will handle object of
63
/// type \c ConstantArrayType.
64
template<typename ImplClass, typename RetTy=void>
65
class TypeVisitor {
66
public:
67
68
  /// Performs the operation associated with this visitor object.
69
55.2M
  RetTy Visit(const Type *T) {
70
55.2M
    // Top switch stmt: dispatch to VisitFooType for each FooType.
71
55.2M
    switch (T->getTypeClass()) {
72
55.2M
#define ABSTRACT_TYPE(CLASS, PARENT)
73
110M
#define TYPE(CLASS, PARENT) 
case Type::CLASS: 55.2M
DISPATCH(CLASS##Type);
74
55.2M
#include 
"clang/AST/TypeNodes.def"15.3M
75
55.2M
    }
76
55.2M
    
llvm_unreachable0
("Unknown type class!");
77
55.2M
  }
SemaTemplate.cpp:clang::TypeVisitor<(anonymous namespace)::UnnamedLocalNoLinkageFinder, bool>::Visit(clang::Type const*)
Line
Count
Source
69
10.7M
  RetTy Visit(const Type *T) {
70
10.7M
    // Top switch stmt: dispatch to VisitFooType for each FooType.
71
10.7M
    switch (T->getTypeClass()) {
72
10.7M
#define ABSTRACT_TYPE(CLASS, PARENT)
73
10.7M
#define TYPE(CLASS, PARENT) case Type::CLASS: DISPATCH(CLASS##Type);
74
10.7M
#include 
"clang/AST/TypeNodes.def"2.05M
75
10.7M
    }
76
10.7M
    
llvm_unreachable0
("Unknown type class!");
77
  }
ASTDumper.cpp:clang::TypeVisitor<(anonymous namespace)::ASTDumper, void>::Visit(clang::Type const*)
Line
Count
Source
69
724
  RetTy Visit(const Type *T) {
70
724
    // Top switch stmt: dispatch to VisitFooType for each FooType.
71
724
    switch (T->getTypeClass()) {
72
724
#define ABSTRACT_TYPE(CLASS, PARENT)
73
724
#define TYPE(CLASS, PARENT) case Type::CLASS: DISPATCH(CLASS##Type);
74
724
#include 
"clang/AST/TypeNodes.def"287
75
724
    }
76
724
    
llvm_unreachable0
("Unknown type class!");
77
  }
clang::TypeVisitor<clang::ASTNodeImporter, clang::QualType>::Visit(clang::Type const*)
Line
Count
Source
69
3.72k
  RetTy Visit(const Type *T) {
70
3.72k
    // Top switch stmt: dispatch to VisitFooType for each FooType.
71
3.72k
    switch (T->getTypeClass()) {
72
3.72k
#define ABSTRACT_TYPE(CLASS, PARENT)
73
3.72k
#define TYPE(CLASS, PARENT) case Type::CLASS: DISPATCH(CLASS##Type);
74
3.72k
#include 
"clang/AST/TypeNodes.def"1.16k
75
3.72k
    }
76
3.72k
    
llvm_unreachable0
("Unknown type class!");
77
  }
ODRHash.cpp:clang::TypeVisitor<(anonymous namespace)::ODRTypeVisitor, void>::Visit(clang::Type const*)
Line
Count
Source
69
539k
  RetTy Visit(const Type *T) {
70
539k
    // Top switch stmt: dispatch to VisitFooType for each FooType.
71
539k
    switch (T->getTypeClass()) {
72
539k
#define ABSTRACT_TYPE(CLASS, PARENT)
73
539k
#define TYPE(CLASS, PARENT) case Type::CLASS: DISPATCH(CLASS##Type);
74
539k
#include 
"clang/AST/TypeNodes.def"87.8k
75
539k
    }
76
539k
    
llvm_unreachable0
("Unknown type class!");
77
  }
Type.cpp:clang::TypeVisitor<(anonymous namespace)::SimpleTransformVisitor<clang::QualType::substObjCTypeArgs(clang::ASTContext&, llvm::ArrayRef<clang::QualType>, clang::ObjCSubstitutionContext) const::$_0>, clang::QualType>::Visit(clang::Type const*)
Line
Count
Source
69
604
  RetTy Visit(const Type *T) {
70
604
    // Top switch stmt: dispatch to VisitFooType for each FooType.
71
604
    switch (T->getTypeClass()) {
72
604
#define ABSTRACT_TYPE(CLASS, PARENT)
73
604
#define TYPE(CLASS, PARENT) case Type::CLASS: DISPATCH(CLASS##Type);
74
604
#include 
"clang/AST/TypeNodes.def"250
75
604
    }
76
604
    
llvm_unreachable0
("Unknown type class!");
77
  }
Type.cpp:clang::TypeVisitor<(anonymous namespace)::SimpleTransformVisitor<clang::QualType::stripObjCKindOfType(clang::ASTContext const&) const::$_1>, clang::QualType>::Visit(clang::Type const*)
Line
Count
Source
69
407
  RetTy Visit(const Type *T) {
70
407
    // Top switch stmt: dispatch to VisitFooType for each FooType.
71
407
    switch (T->getTypeClass()) {
72
407
#define ABSTRACT_TYPE(CLASS, PARENT)
73
407
#define TYPE(CLASS, PARENT) case Type::CLASS: DISPATCH(CLASS##Type);
74
407
#include 
"clang/AST/TypeNodes.def"42
75
407
    }
76
407
    
llvm_unreachable0
("Unknown type class!");
77
  }
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::Visit(clang::Type const*)
Line
Count
Source
69
44.0M
  RetTy Visit(const Type *T) {
70
44.0M
    // Top switch stmt: dispatch to VisitFooType for each FooType.
71
44.0M
    switch (T->getTypeClass()) {
72
44.0M
#define ABSTRACT_TYPE(CLASS, PARENT)
73
44.0M
#define TYPE(CLASS, PARENT) case Type::CLASS: DISPATCH(CLASS##Type);
74
44.0M
#include 
"clang/AST/TypeNodes.def"13.2M
75
44.0M
    }
76
44.0M
    
llvm_unreachable0
("Unknown type class!");
77
  }
78
79
  // If the implementation chooses not to implement a certain visit method, fall
80
  // back on superclass.
81
42.5M
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
42.5M
  DISPATCH(PARENT);                                                          \
83
42.5M
}
ASTDumper.cpp:clang::TypeVisitor<(anonymous namespace)::ASTDumper, void>::VisitBuiltinType(clang::BuiltinType const*)
Line
Count
Source
81
287
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
287
  DISPATCH(PARENT);                                                          \
83
287
}
ASTDumper.cpp:clang::TypeVisitor<(anonymous namespace)::ASTDumper, void>::VisitLValueReferenceType(clang::LValueReferenceType const*)
Line
Count
Source
81
3
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
3
  DISPATCH(PARENT);                                                          \
83
3
}
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
81
4
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
4
  DISPATCH(PARENT);                                                          \
83
4
}
Unexecuted instantiation: ASTDumper.cpp:clang::TypeVisitor<(anonymous namespace)::ASTDumper, void>::VisitFunctionNoProtoType(clang::FunctionNoProtoType const*)
Unexecuted instantiation: ASTDumper.cpp:clang::TypeVisitor<(anonymous namespace)::ASTDumper, void>::VisitParenType(clang::ParenType const*)
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
81
138
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
138
  DISPATCH(PARENT);                                                          \
83
138
}
Unexecuted instantiation: ASTDumper.cpp:clang::TypeVisitor<(anonymous namespace)::ASTDumper, void>::VisitEnumType(clang::EnumType const*)
ASTDumper.cpp:clang::TypeVisitor<(anonymous namespace)::ASTDumper, void>::VisitElaboratedType(clang::ElaboratedType const*)
Line
Count
Source
81
7
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
7
  DISPATCH(PARENT);                                                          \
83
7
}
Unexecuted instantiation: ASTDumper.cpp:clang::TypeVisitor<(anonymous namespace)::ASTDumper, void>::VisitDeducedTemplateSpecializationType(clang::DeducedTemplateSpecializationType const*)
Unexecuted instantiation: ASTDumper.cpp:clang::TypeVisitor<(anonymous namespace)::ASTDumper, void>::VisitDeducedType(clang::DeducedType const*)
ASTDumper.cpp:clang::TypeVisitor<(anonymous namespace)::ASTDumper, void>::VisitDependentNameType(clang::DependentNameType const*)
Line
Count
Source
81
7
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
7
  DISPATCH(PARENT);                                                          \
83
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
81
34
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
34
  DISPATCH(PARENT);                                                          \
83
34
}
Unexecuted instantiation: clang::TypeVisitor<clang::ASTNodeImporter, clang::QualType>::VisitDependentSizedExtVectorType(clang::DependentSizedExtVectorType const*)
Unexecuted instantiation: clang::TypeVisitor<clang::ASTNodeImporter, clang::QualType>::VisitDependentAddressSpaceType(clang::DependentAddressSpaceType const*)
Unexecuted instantiation: clang::TypeVisitor<clang::ASTNodeImporter, clang::QualType>::VisitDependentVectorType(clang::DependentVectorType const*)
Unexecuted instantiation: clang::TypeVisitor<clang::ASTNodeImporter, clang::QualType>::VisitAdjustedType(clang::AdjustedType const*)
Unexecuted instantiation: clang::TypeVisitor<clang::ASTNodeImporter, clang::QualType>::VisitSubstTemplateTypeParmPackType(clang::SubstTemplateTypeParmPackType const*)
Unexecuted instantiation: clang::TypeVisitor<clang::ASTNodeImporter, clang::QualType>::VisitDeducedTemplateSpecializationType(clang::DeducedTemplateSpecializationType const*)
Unexecuted instantiation: clang::TypeVisitor<clang::ASTNodeImporter, clang::QualType>::VisitDeducedType(clang::DeducedType const*)
Unexecuted instantiation: clang::TypeVisitor<clang::ASTNodeImporter, clang::QualType>::VisitObjCTypeParamType(clang::ObjCTypeParamType const*)
Unexecuted instantiation: clang::TypeVisitor<clang::ASTNodeImporter, clang::QualType>::VisitPipeType(clang::PipeType const*)
ODRHash.cpp:clang::TypeVisitor<(anonymous namespace)::ODRTypeVisitor, void>::VisitComplexType(clang::ComplexType const*)
Line
Count
Source
81
2
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
2
  DISPATCH(PARENT);                                                          \
83
2
}
ODRHash.cpp:clang::TypeVisitor<(anonymous namespace)::ODRTypeVisitor, void>::VisitBlockPointerType(clang::BlockPointerType const*)
Line
Count
Source
81
35
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
35
  DISPATCH(PARENT);                                                          \
83
35
}
ODRHash.cpp:clang::TypeVisitor<(anonymous namespace)::ODRTypeVisitor, void>::VisitMemberPointerType(clang::MemberPointerType const*)
Line
Count
Source
81
123
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
123
  DISPATCH(PARENT);                                                          \
83
123
}
Unexecuted instantiation: ODRHash.cpp:clang::TypeVisitor<(anonymous namespace)::ODRTypeVisitor, void>::VisitDependentSizedExtVectorType(clang::DependentSizedExtVectorType const*)
Unexecuted instantiation: ODRHash.cpp:clang::TypeVisitor<(anonymous namespace)::ODRTypeVisitor, void>::VisitDependentAddressSpaceType(clang::DependentAddressSpaceType const*)
ODRHash.cpp:clang::TypeVisitor<(anonymous namespace)::ODRTypeVisitor, void>::VisitVectorType(clang::VectorType const*)
Line
Count
Source
81
195k
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
195k
  DISPATCH(PARENT);                                                          \
83
195k
}
Unexecuted instantiation: ODRHash.cpp:clang::TypeVisitor<(anonymous namespace)::ODRTypeVisitor, void>::VisitDependentVectorType(clang::DependentVectorType const*)
ODRHash.cpp:clang::TypeVisitor<(anonymous namespace)::ODRTypeVisitor, void>::VisitExtVectorType(clang::ExtVectorType const*)
Line
Count
Source
81
84.0k
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
84.0k
  DISPATCH(PARENT);                                                          \
83
84.0k
}
ODRHash.cpp:clang::TypeVisitor<(anonymous namespace)::ODRTypeVisitor, void>::VisitUnresolvedUsingType(clang::UnresolvedUsingType const*)
Line
Count
Source
81
1
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
1
  DISPATCH(PARENT);                                                          \
83
1
}
ODRHash.cpp:clang::TypeVisitor<(anonymous namespace)::ODRTypeVisitor, void>::VisitParenType(clang::ParenType const*)
Line
Count
Source
81
22
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
22
  DISPATCH(PARENT);                                                          \
83
22
}
Unexecuted instantiation: ODRHash.cpp:clang::TypeVisitor<(anonymous namespace)::ODRTypeVisitor, void>::VisitTypeOfExprType(clang::TypeOfExprType const*)
Unexecuted instantiation: ODRHash.cpp:clang::TypeVisitor<(anonymous namespace)::ODRTypeVisitor, void>::VisitTypeOfType(clang::TypeOfType const*)
ODRHash.cpp:clang::TypeVisitor<(anonymous namespace)::ODRTypeVisitor, void>::VisitDecltypeType(clang::DecltypeType const*)
Line
Count
Source
81
25
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
25
  DISPATCH(PARENT);                                                          \
83
25
}
ODRHash.cpp:clang::TypeVisitor<(anonymous namespace)::ODRTypeVisitor, void>::VisitUnaryTransformType(clang::UnaryTransformType const*)
Line
Count
Source
81
2
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
2
  DISPATCH(PARENT);                                                          \
83
2
}
ODRHash.cpp:clang::TypeVisitor<(anonymous namespace)::ODRTypeVisitor, void>::VisitAttributedType(clang::AttributedType const*)
Line
Count
Source
81
1
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
1
  DISPATCH(PARENT);                                                          \
83
1
}
ODRHash.cpp:clang::TypeVisitor<(anonymous namespace)::ODRTypeVisitor, void>::VisitSubstTemplateTypeParmType(clang::SubstTemplateTypeParmType const*)
Line
Count
Source
81
10
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
10
  DISPATCH(PARENT);                                                          \
83
10
}
Unexecuted instantiation: ODRHash.cpp:clang::TypeVisitor<(anonymous namespace)::ODRTypeVisitor, void>::VisitSubstTemplateTypeParmPackType(clang::SubstTemplateTypeParmPackType const*)
ODRHash.cpp:clang::TypeVisitor<(anonymous namespace)::ODRTypeVisitor, void>::VisitAutoType(clang::AutoType const*)
Line
Count
Source
81
74
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
74
  DISPATCH(PARENT);                                                          \
83
74
}
ODRHash.cpp:clang::TypeVisitor<(anonymous namespace)::ODRTypeVisitor, void>::VisitDeducedType(clang::DeducedType const*)
Line
Count
Source
81
74
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
74
  DISPATCH(PARENT);                                                          \
83
74
}
Unexecuted instantiation: ODRHash.cpp:clang::TypeVisitor<(anonymous namespace)::ODRTypeVisitor, void>::VisitDeducedTemplateSpecializationType(clang::DeducedTemplateSpecializationType const*)
ODRHash.cpp:clang::TypeVisitor<(anonymous namespace)::ODRTypeVisitor, void>::VisitInjectedClassNameType(clang::InjectedClassNameType const*)
Line
Count
Source
81
2.98k
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
2.98k
  DISPATCH(PARENT);                                                          \
83
2.98k
}
ODRHash.cpp:clang::TypeVisitor<(anonymous namespace)::ODRTypeVisitor, void>::VisitPackExpansionType(clang::PackExpansionType const*)
Line
Count
Source
81
25
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
25
  DISPATCH(PARENT);                                                          \
83
25
}
Unexecuted instantiation: ODRHash.cpp:clang::TypeVisitor<(anonymous namespace)::ODRTypeVisitor, void>::VisitObjCTypeParamType(clang::ObjCTypeParamType const*)
Unexecuted instantiation: ODRHash.cpp:clang::TypeVisitor<(anonymous namespace)::ODRTypeVisitor, void>::VisitObjCObjectType(clang::ObjCObjectType const*)
Unexecuted instantiation: ODRHash.cpp:clang::TypeVisitor<(anonymous namespace)::ODRTypeVisitor, void>::VisitObjCInterfaceType(clang::ObjCInterfaceType const*)
ODRHash.cpp:clang::TypeVisitor<(anonymous namespace)::ODRTypeVisitor, void>::VisitObjCObjectPointerType(clang::ObjCObjectPointerType const*)
Line
Count
Source
81
67
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
67
  DISPATCH(PARENT);                                                          \
83
67
}
ODRHash.cpp:clang::TypeVisitor<(anonymous namespace)::ODRTypeVisitor, void>::VisitPipeType(clang::PipeType const*)
Line
Count
Source
81
2
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
2
  DISPATCH(PARENT);                                                          \
83
2
}
ODRHash.cpp:clang::TypeVisitor<(anonymous namespace)::ODRTypeVisitor, void>::VisitAtomicType(clang::AtomicType const*)
Line
Count
Source
81
518
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
518
  DISPATCH(PARENT);                                                          \
83
518
}
Unexecuted instantiation: Type.cpp:clang::TypeVisitor<(anonymous namespace)::SimpleTransformVisitor<clang::QualType::substObjCTypeArgs(clang::ASTContext&, llvm::ArrayRef<clang::QualType>, clang::ObjCSubstitutionContext) const::$_0>, clang::QualType>::VisitDeducedTemplateSpecializationType(clang::DeducedTemplateSpecializationType const*)
Unexecuted instantiation: Type.cpp:clang::TypeVisitor<(anonymous namespace)::SimpleTransformVisitor<clang::QualType::substObjCTypeArgs(clang::ASTContext&, llvm::ArrayRef<clang::QualType>, clang::ObjCSubstitutionContext) const::$_0>, clang::QualType>::VisitDeducedType(clang::DeducedType const*)
Unexecuted instantiation: Type.cpp:clang::TypeVisitor<(anonymous namespace)::SimpleTransformVisitor<clang::QualType::substObjCTypeArgs(clang::ASTContext&, llvm::ArrayRef<clang::QualType>, clang::ObjCSubstitutionContext) const::$_0>, clang::QualType>::VisitPipeType(clang::PipeType const*)
Unexecuted instantiation: Type.cpp:clang::TypeVisitor<(anonymous namespace)::SimpleTransformVisitor<clang::QualType::stripObjCKindOfType(clang::ASTContext const&) const::$_1>, clang::QualType>::VisitDeducedTemplateSpecializationType(clang::DeducedTemplateSpecializationType const*)
Unexecuted instantiation: Type.cpp:clang::TypeVisitor<(anonymous namespace)::SimpleTransformVisitor<clang::QualType::stripObjCKindOfType(clang::ASTContext const&) const::$_1>, clang::QualType>::VisitDeducedType(clang::DeducedType const*)
Unexecuted instantiation: Type.cpp:clang::TypeVisitor<(anonymous namespace)::SimpleTransformVisitor<clang::QualType::stripObjCKindOfType(clang::ASTContext const&) const::$_1>, clang::QualType>::VisitPipeType(clang::PipeType const*)
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitBuiltinType(clang::BuiltinType const*)
Line
Count
Source
81
13.2M
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
13.2M
  DISPATCH(PARENT);                                                          \
83
13.2M
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitComplexType(clang::ComplexType const*)
Line
Count
Source
81
13.1k
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
13.1k
  DISPATCH(PARENT);                                                          \
83
13.1k
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitLValueReferenceType(clang::LValueReferenceType const*)
Line
Count
Source
81
263k
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
263k
  DISPATCH(PARENT);                                                          \
83
263k
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitRValueReferenceType(clang::RValueReferenceType const*)
Line
Count
Source
81
19.4k
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
19.4k
  DISPATCH(PARENT);                                                          \
83
19.4k
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitConstantArrayType(clang::ConstantArrayType const*)
Line
Count
Source
81
151k
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
151k
  DISPATCH(PARENT);                                                          \
83
151k
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitIncompleteArrayType(clang::IncompleteArrayType const*)
Line
Count
Source
81
63.2k
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
63.2k
  DISPATCH(PARENT);                                                          \
83
63.2k
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitVariableArrayType(clang::VariableArrayType const*)
Line
Count
Source
81
13.4k
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
13.4k
  DISPATCH(PARENT);                                                          \
83
13.4k
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitDependentSizedArrayType(clang::DependentSizedArrayType const*)
Line
Count
Source
81
5.61k
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
5.61k
  DISPATCH(PARENT);                                                          \
83
5.61k
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitDependentAddressSpaceType(clang::DependentAddressSpaceType const*)
Line
Count
Source
81
62
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
62
  DISPATCH(PARENT);                                                          \
83
62
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitDependentVectorType(clang::DependentVectorType const*)
Line
Count
Source
81
12
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
12
  DISPATCH(PARENT);                                                          \
83
12
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitExtVectorType(clang::ExtVectorType const*)
Line
Count
Source
81
1.27k
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
1.27k
  DISPATCH(PARENT);                                                          \
83
1.27k
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitFunctionNoProtoType(clang::FunctionNoProtoType const*)
Line
Count
Source
81
1.41k
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
1.41k
  DISPATCH(PARENT);                                                          \
83
1.41k
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitUnresolvedUsingType(clang::UnresolvedUsingType const*)
Line
Count
Source
81
38
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
38
  DISPATCH(PARENT);                                                          \
83
38
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitTypedefType(clang::TypedefType const*)
Line
Count
Source
81
17.7M
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
17.7M
  DISPATCH(PARENT);                                                          \
83
17.7M
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitDecayedType(clang::DecayedType const*)
Line
Count
Source
81
196
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
196
  DISPATCH(PARENT);                                                          \
83
196
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitTypeOfExprType(clang::TypeOfExprType const*)
Line
Count
Source
81
2.88k
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
2.88k
  DISPATCH(PARENT);                                                          \
83
2.88k
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitTypeOfType(clang::TypeOfType const*)
Line
Count
Source
81
89
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
89
  DISPATCH(PARENT);                                                          \
83
89
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitDecltypeType(clang::DecltypeType const*)
Line
Count
Source
81
58.1k
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
58.1k
  DISPATCH(PARENT);                                                          \
83
58.1k
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitUnaryTransformType(clang::UnaryTransformType const*)
Line
Count
Source
81
622
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
622
  DISPATCH(PARENT);                                                          \
83
622
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitRecordType(clang::RecordType const*)
Line
Count
Source
81
1.92M
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
1.92M
  DISPATCH(PARENT);                                                          \
83
1.92M
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitTagType(clang::TagType const*)
Line
Count
Source
81
2.11M
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
2.11M
  DISPATCH(PARENT);                                                          \
83
2.11M
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitEnumType(clang::EnumType const*)
Line
Count
Source
81
192k
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
192k
  DISPATCH(PARENT);                                                          \
83
192k
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitTemplateTypeParmType(clang::TemplateTypeParmType const*)
Line
Count
Source
81
3.88M
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
3.88M
  DISPATCH(PARENT);                                                          \
83
3.88M
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitSubstTemplateTypeParmType(clang::SubstTemplateTypeParmType const*)
Line
Count
Source
81
249k
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
249k
  DISPATCH(PARENT);                                                          \
83
249k
}
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
81
1.09M
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
1.09M
  DISPATCH(PARENT);                                                          \
83
1.09M
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitAutoType(clang::AutoType const*)
Line
Count
Source
81
128k
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
128k
  DISPATCH(PARENT);                                                          \
83
128k
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitDeducedTemplateSpecializationType(clang::DeducedTemplateSpecializationType const*)
Line
Count
Source
81
1.10k
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
1.10k
  DISPATCH(PARENT);                                                          \
83
1.10k
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitInjectedClassNameType(clang::InjectedClassNameType const*)
Line
Count
Source
81
318k
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
318k
  DISPATCH(PARENT);                                                          \
83
318k
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitDependentNameType(clang::DependentNameType const*)
Line
Count
Source
81
631k
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
631k
  DISPATCH(PARENT);                                                          \
83
631k
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitDependentTemplateSpecializationType(clang::DependentTemplateSpecializationType const*)
Line
Count
Source
81
3.58k
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
3.58k
  DISPATCH(PARENT);                                                          \
83
3.58k
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitPackExpansionType(clang::PackExpansionType const*)
Line
Count
Source
81
68
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
68
  DISPATCH(PARENT);                                                          \
83
68
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitObjCTypeParamType(clang::ObjCTypeParamType const*)
Line
Count
Source
81
5.80k
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
5.80k
  DISPATCH(PARENT);                                                          \
83
5.80k
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitObjCObjectType(clang::ObjCObjectType const*)
Line
Count
Source
81
72.3k
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
72.3k
  DISPATCH(PARENT);                                                          \
83
72.3k
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitObjCInterfaceType(clang::ObjCInterfaceType const*)
Line
Count
Source
81
64.6k
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
64.6k
  DISPATCH(PARENT);                                                          \
83
64.6k
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitObjCObjectPointerType(clang::ObjCObjectPointerType const*)
Line
Count
Source
81
22.5k
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
22.5k
  DISPATCH(PARENT);                                                          \
83
22.5k
}
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
81
8.46k
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
8.46k
  DISPATCH(PARENT);                                                          \
83
8.46k
}
84
#include "clang/AST/TypeNodes.def"
85
86
  /// Method called if \c ImpClass doesn't provide specific handler
87
  /// for some type class.
88
39.4M
  RetTy VisitType(const Type*) { return RetTy(); }
ASTDumper.cpp:clang::TypeVisitor<(anonymous namespace)::ASTDumper, void>::VisitType(clang::Type const*)
Line
Count
Source
88
335
  RetTy VisitType(const Type*) { return RetTy(); }
Unexecuted instantiation: Type.cpp:clang::TypeVisitor<(anonymous namespace)::SimpleTransformVisitor<clang::QualType::substObjCTypeArgs(clang::ASTContext&, llvm::ArrayRef<clang::QualType>, clang::ObjCSubstitutionContext) const::$_0>, clang::QualType>::VisitType(clang::Type const*)
Unexecuted instantiation: Type.cpp:clang::TypeVisitor<(anonymous namespace)::SimpleTransformVisitor<clang::QualType::stripObjCKindOfType(clang::ASTContext const&) const::$_1>, clang::QualType>::VisitType(clang::Type const*)
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitType(clang::Type const*)
Line
Count
Source
88
39.4M
  RetTy VisitType(const Type*) { return RetTy(); }
89
};
90
91
#undef DISPATCH
92
93
}  // end namespace clang
94
95
#endif