Coverage Report

Created: 2018-11-16 02:38

/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
166M
  return static_cast<ImplClass*>(this)-> \
23
166M
           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
60.6M
  RetTy Visit(const Type *T) {
70
60.6M
    // Top switch stmt: dispatch to VisitFooType for each FooType.
71
60.6M
    switch (T->getTypeClass()) {
72
60.6M
#define ABSTRACT_TYPE(CLASS, PARENT)
73
121M
#define TYPE(CLASS, PARENT) 
case Type::CLASS: 60.6M
DISPATCH(CLASS##Type);
74
60.6M
#include 
"clang/AST/TypeNodes.def"16.5M
75
60.6M
    }
76
60.6M
    
llvm_unreachable0
("Unknown type class!");
77
60.6M
  }
SemaTemplate.cpp:clang::TypeVisitor<(anonymous namespace)::UnnamedLocalNoLinkageFinder, bool>::Visit(clang::Type const*)
Line
Count
Source
69
12.6M
  RetTy Visit(const Type *T) {
70
12.6M
    // Top switch stmt: dispatch to VisitFooType for each FooType.
71
12.6M
    switch (T->getTypeClass()) {
72
12.6M
#define ABSTRACT_TYPE(CLASS, PARENT)
73
12.6M
#define TYPE(CLASS, PARENT) case Type::CLASS: DISPATCH(CLASS##Type);
74
12.6M
#include 
"clang/AST/TypeNodes.def"2.31M
75
12.6M
    }
76
12.6M
    
llvm_unreachable0
("Unknown type class!");
77
  }
ASTDumper.cpp:clang::TypeVisitor<(anonymous namespace)::ASTDumper, void>::Visit(clang::Type const*)
Line
Count
Source
69
996
  RetTy Visit(const Type *T) {
70
996
    // Top switch stmt: dispatch to VisitFooType for each FooType.
71
996
    switch (T->getTypeClass()) {
72
996
#define ABSTRACT_TYPE(CLASS, PARENT)
73
996
#define TYPE(CLASS, PARENT) case Type::CLASS: DISPATCH(CLASS##Type);
74
996
#include 
"clang/AST/TypeNodes.def"405
75
996
    }
76
996
    
llvm_unreachable0
("Unknown type class!");
77
  }
clang::TypeVisitor<clang::ASTNodeImporter, llvm::Expected<clang::QualType> >::Visit(clang::Type const*)
Line
Count
Source
69
4.97k
  RetTy Visit(const Type *T) {
70
4.97k
    // Top switch stmt: dispatch to VisitFooType for each FooType.
71
4.97k
    switch (T->getTypeClass()) {
72
4.97k
#define ABSTRACT_TYPE(CLASS, PARENT)
73
4.97k
#define TYPE(CLASS, PARENT) case Type::CLASS: DISPATCH(CLASS##Type);
74
4.97k
#include 
"clang/AST/TypeNodes.def"1.53k
75
4.97k
    }
76
4.97k
    
llvm_unreachable0
("Unknown type class!");
77
  }
ODRHash.cpp:clang::TypeVisitor<(anonymous namespace)::ODRTypeVisitor, void>::Visit(clang::Type const*)
Line
Count
Source
69
835k
  RetTy Visit(const Type *T) {
70
835k
    // Top switch stmt: dispatch to VisitFooType for each FooType.
71
835k
    switch (T->getTypeClass()) {
72
835k
#define ABSTRACT_TYPE(CLASS, PARENT)
73
835k
#define TYPE(CLASS, PARENT) case Type::CLASS: DISPATCH(CLASS##Type);
74
835k
#include 
"clang/AST/TypeNodes.def"306k
75
835k
    }
76
835k
    
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
414
  RetTy Visit(const Type *T) {
70
414
    // Top switch stmt: dispatch to VisitFooType for each FooType.
71
414
    switch (T->getTypeClass()) {
72
414
#define ABSTRACT_TYPE(CLASS, PARENT)
73
414
#define TYPE(CLASS, PARENT) case Type::CLASS: DISPATCH(CLASS##Type);
74
414
#include 
"clang/AST/TypeNodes.def"42
75
414
    }
76
414
    
llvm_unreachable0
("Unknown type class!");
77
  }
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::Visit(clang::Type const*)
Line
Count
Source
69
47.1M
  RetTy Visit(const Type *T) {
70
47.1M
    // Top switch stmt: dispatch to VisitFooType for each FooType.
71
47.1M
    switch (T->getTypeClass()) {
72
47.1M
#define ABSTRACT_TYPE(CLASS, PARENT)
73
47.1M
#define TYPE(CLASS, PARENT) case Type::CLASS: DISPATCH(CLASS##Type);
74
47.1M
#include 
"clang/AST/TypeNodes.def"13.8M
75
47.1M
    }
76
47.1M
    
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
45.2M
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
45.2M
  DISPATCH(PARENT);                                                          \
83
45.2M
}
ASTDumper.cpp:clang::TypeVisitor<(anonymous namespace)::ASTDumper, void>::VisitBuiltinType(clang::BuiltinType const*)
Line
Count
Source
81
405
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
405
  DISPATCH(PARENT);                                                          \
83
405
}
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
5
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
5
  DISPATCH(PARENT);                                                          \
83
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>::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
201
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
201
  DISPATCH(PARENT);                                                          \
83
201
}
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
40
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
40
  DISPATCH(PARENT);                                                          \
83
40
}
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
81
520
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
520
  DISPATCH(PARENT);                                                          \
83
520
}
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.8M
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
13.8M
  DISPATCH(PARENT);                                                          \
83
13.8M
}
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
346k
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
346k
  DISPATCH(PARENT);                                                          \
83
346k
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitRValueReferenceType(clang::RValueReferenceType const*)
Line
Count
Source
81
29.5k
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
29.5k
  DISPATCH(PARENT);                                                          \
83
29.5k
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitConstantArrayType(clang::ConstantArrayType const*)
Line
Count
Source
81
154k
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
154k
  DISPATCH(PARENT);                                                          \
83
154k
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitIncompleteArrayType(clang::IncompleteArrayType const*)
Line
Count
Source
81
64.4k
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
64.4k
  DISPATCH(PARENT);                                                          \
83
64.4k
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitVariableArrayType(clang::VariableArrayType const*)
Line
Count
Source
81
15.1k
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
15.1k
  DISPATCH(PARENT);                                                          \
83
15.1k
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitDependentSizedArrayType(clang::DependentSizedArrayType const*)
Line
Count
Source
81
5.81k
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
5.81k
  DISPATCH(PARENT);                                                          \
83
5.81k
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitDependentAddressSpaceType(clang::DependentAddressSpaceType const*)
Line
Count
Source
81
82
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
82
  DISPATCH(PARENT);                                                          \
83
82
}
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.28k
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
1.28k
  DISPATCH(PARENT);                                                          \
83
1.28k
}
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
50
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
50
  DISPATCH(PARENT);                                                          \
83
50
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitTypedefType(clang::TypedefType const*)
Line
Count
Source
81
18.9M
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
18.9M
  DISPATCH(PARENT);                                                          \
83
18.9M
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitDecayedType(clang::DecayedType const*)
Line
Count
Source
81
258
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
258
  DISPATCH(PARENT);                                                          \
83
258
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitTypeOfExprType(clang::TypeOfExprType const*)
Line
Count
Source
81
3.10k
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
3.10k
  DISPATCH(PARENT);                                                          \
83
3.10k
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitTypeOfType(clang::TypeOfType const*)
Line
Count
Source
81
121
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
121
  DISPATCH(PARENT);                                                          \
83
121
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitDecltypeType(clang::DecltypeType const*)
Line
Count
Source
81
67.5k
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
67.5k
  DISPATCH(PARENT);                                                          \
83
67.5k
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitUnaryTransformType(clang::UnaryTransformType const*)
Line
Count
Source
81
667
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
667
  DISPATCH(PARENT);                                                          \
83
667
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitRecordType(clang::RecordType const*)
Line
Count
Source
81
2.03M
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
2.03M
  DISPATCH(PARENT);                                                          \
83
2.03M
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitTagType(clang::TagType const*)
Line
Count
Source
81
2.24M
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
2.24M
  DISPATCH(PARENT);                                                          \
83
2.24M
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitEnumType(clang::EnumType const*)
Line
Count
Source
81
212k
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
212k
  DISPATCH(PARENT);                                                          \
83
212k
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitTemplateTypeParmType(clang::TemplateTypeParmType const*)
Line
Count
Source
81
4.27M
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
4.27M
  DISPATCH(PARENT);                                                          \
83
4.27M
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitSubstTemplateTypeParmType(clang::SubstTemplateTypeParmType const*)
Line
Count
Source
81
289k
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
289k
  DISPATCH(PARENT);                                                          \
83
289k
}
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.24M
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
1.24M
  DISPATCH(PARENT);                                                          \
83
1.24M
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitAutoType(clang::AutoType const*)
Line
Count
Source
81
132k
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
132k
  DISPATCH(PARENT);                                                          \
83
132k
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitDeducedTemplateSpecializationType(clang::DeducedTemplateSpecializationType 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*>::VisitInjectedClassNameType(clang::InjectedClassNameType const*)
Line
Count
Source
81
354k
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
354k
  DISPATCH(PARENT);                                                          \
83
354k
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitDependentNameType(clang::DependentNameType const*)
Line
Count
Source
81
702k
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
702k
  DISPATCH(PARENT);                                                          \
83
702k
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitDependentTemplateSpecializationType(clang::DependentTemplateSpecializationType const*)
Line
Count
Source
81
3.82k
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
3.82k
  DISPATCH(PARENT);                                                          \
83
3.82k
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitPackExpansionType(clang::PackExpansionType const*)
Line
Count
Source
81
79
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
79
  DISPATCH(PARENT);                                                          \
83
79
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitObjCTypeParamType(clang::ObjCTypeParamType const*)
Line
Count
Source
81
5.82k
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
5.82k
  DISPATCH(PARENT);                                                          \
83
5.82k
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitObjCObjectType(clang::ObjCObjectType const*)
Line
Count
Source
81
72.4k
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
72.4k
  DISPATCH(PARENT);                                                          \
83
72.4k
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitObjCInterfaceType(clang::ObjCInterfaceType const*)
Line
Count
Source
81
64.7k
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
64.7k
  DISPATCH(PARENT);                                                          \
83
64.7k
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitObjCObjectPointerType(clang::ObjCObjectPointerType const*)
Line
Count
Source
81
22.6k
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
22.6k
  DISPATCH(PARENT);                                                          \
83
22.6k
}
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.52k
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
8.52k
  DISPATCH(PARENT);                                                          \
83
8.52k
}
84
#include "clang/AST/TypeNodes.def"
85
86
  /// Method called if \c ImpClass doesn't provide specific handler
87
  /// for some type class.
88
42.1M
  RetTy VisitType(const Type*) { return RetTy(); }
ASTDumper.cpp:clang::TypeVisitor<(anonymous namespace)::ASTDumper, void>::VisitType(clang::Type const*)
Line
Count
Source
88
459
  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
42.1M
  RetTy VisitType(const Type*) { return RetTy(); }
89
};
90
91
#undef DISPATCH
92
93
}  // end namespace clang
94
95
#endif