Coverage Report

Created: 2018-09-23 03:40

/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
165M
  return static_cast<ImplClass*>(this)-> \
23
165M
           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.3M
  RetTy Visit(const Type *T) {
70
60.3M
    // Top switch stmt: dispatch to VisitFooType for each FooType.
71
60.3M
    switch (T->getTypeClass()) {
72
60.3M
#define ABSTRACT_TYPE(CLASS, PARENT)
73
120M
#define TYPE(CLASS, PARENT) 
case Type::CLASS: 60.3M
DISPATCH(CLASS##Type);
74
60.3M
#include 
"clang/AST/TypeNodes.def"16.4M
75
60.3M
    }
76
60.3M
    
llvm_unreachable0
("Unknown type class!");
77
60.3M
  }
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.34M
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
970
  RetTy Visit(const Type *T) {
70
970
    // Top switch stmt: dispatch to VisitFooType for each FooType.
71
970
    switch (T->getTypeClass()) {
72
970
#define ABSTRACT_TYPE(CLASS, PARENT)
73
970
#define TYPE(CLASS, PARENT) case Type::CLASS: DISPATCH(CLASS##Type);
74
970
#include 
"clang/AST/TypeNodes.def"387
75
970
    }
76
970
    
llvm_unreachable0
("Unknown type class!");
77
  }
clang::TypeVisitor<clang::ASTNodeImporter, clang::QualType>::Visit(clang::Type const*)
Line
Count
Source
69
4.92k
  RetTy Visit(const Type *T) {
70
4.92k
    // Top switch stmt: dispatch to VisitFooType for each FooType.
71
4.92k
    switch (T->getTypeClass()) {
72
4.92k
#define ABSTRACT_TYPE(CLASS, PARENT)
73
4.92k
#define TYPE(CLASS, PARENT) case Type::CLASS: DISPATCH(CLASS##Type);
74
4.92k
#include 
"clang/AST/TypeNodes.def"1.52k
75
4.92k
    }
76
4.92k
    
llvm_unreachable0
("Unknown type class!");
77
  }
ODRHash.cpp:clang::TypeVisitor<(anonymous namespace)::ODRTypeVisitor, void>::Visit(clang::Type const*)
Line
Count
Source
69
830k
  RetTy Visit(const Type *T) {
70
830k
    // Top switch stmt: dispatch to VisitFooType for each FooType.
71
830k
    switch (T->getTypeClass()) {
72
830k
#define ABSTRACT_TYPE(CLASS, PARENT)
73
830k
#define TYPE(CLASS, PARENT) case Type::CLASS: DISPATCH(CLASS##Type);
74
830k
#include 
"clang/AST/TypeNodes.def"304k
75
830k
    }
76
830k
    
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
46.8M
  RetTy Visit(const Type *T) {
70
46.8M
    // Top switch stmt: dispatch to VisitFooType for each FooType.
71
46.8M
    switch (T->getTypeClass()) {
72
46.8M
#define ABSTRACT_TYPE(CLASS, PARENT)
73
46.8M
#define TYPE(CLASS, PARENT) case Type::CLASS: DISPATCH(CLASS##Type);
74
46.8M
#include 
"clang/AST/TypeNodes.def"13.8M
75
46.8M
    }
76
46.8M
    
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
44.9M
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
44.9M
  DISPATCH(PARENT);                                                          \
83
44.9M
}
ASTDumper.cpp:clang::TypeVisitor<(anonymous namespace)::ASTDumper, void>::VisitBuiltinType(clang::BuiltinType const*)
Line
Count
Source
81
387
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
387
  DISPATCH(PARENT);                                                          \
83
387
}
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
197
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
197
  DISPATCH(PARENT);                                                          \
83
197
}
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, 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*)
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.2k
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
29.2k
  DISPATCH(PARENT);                                                          \
83
29.2k
}
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.2k
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
64.2k
  DISPATCH(PARENT);                                                          \
83
64.2k
}
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.8M
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
18.8M
  DISPATCH(PARENT);                                                          \
83
18.8M
}
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.95k
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
2.95k
  DISPATCH(PARENT);                                                          \
83
2.95k
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitTypeOfType(clang::TypeOfType const*)
Line
Count
Source
81
117
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
117
  DISPATCH(PARENT);                                                          \
83
117
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitDecltypeType(clang::DecltypeType const*)
Line
Count
Source
81
67.8k
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
67.8k
  DISPATCH(PARENT);                                                          \
83
67.8k
}
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.01M
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
2.01M
  DISPATCH(PARENT);                                                          \
83
2.01M
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitTagType(clang::TagType const*)
Line
Count
Source
81
2.22M
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
2.22M
  DISPATCH(PARENT);                                                          \
83
2.22M
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitEnumType(clang::EnumType const*)
Line
Count
Source
81
208k
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
208k
  DISPATCH(PARENT);                                                          \
83
208k
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitTemplateTypeParmType(clang::TemplateTypeParmType const*)
Line
Count
Source
81
4.26M
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
4.26M
  DISPATCH(PARENT);                                                          \
83
4.26M
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitSubstTemplateTypeParmType(clang::SubstTemplateTypeParmType const*)
Line
Count
Source
81
286k
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
286k
  DISPATCH(PARENT);                                                          \
83
286k
}
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
136k
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
136k
  DISPATCH(PARENT);                                                          \
83
136k
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitDeducedTemplateSpecializationType(clang::DeducedTemplateSpecializationType const*)
Line
Count
Source
81
1.25k
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
1.25k
  DISPATCH(PARENT);                                                          \
83
1.25k
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitInjectedClassNameType(clang::InjectedClassNameType const*)
Line
Count
Source
81
352k
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
352k
  DISPATCH(PARENT);                                                          \
83
352k
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitDependentNameType(clang::DependentNameType const*)
Line
Count
Source
81
700k
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
700k
  DISPATCH(PARENT);                                                          \
83
700k
}
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.5k
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
72.5k
  DISPATCH(PARENT);                                                          \
83
72.5k
}
Type.cpp:clang::TypeVisitor<(anonymous namespace)::GetContainedDeducedTypeVisitor, clang::Type*>::VisitObjCInterfaceType(clang::ObjCInterfaceType const*)
Line
Count
Source
81
64.8k
#define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
82
64.8k
  DISPATCH(PARENT);                                                          \
83
64.8k
}
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
41.9M
  RetTy VisitType(const Type*) { return RetTy(); }
ASTDumper.cpp:clang::TypeVisitor<(anonymous namespace)::ASTDumper, void>::VisitType(clang::Type const*)
Line
Count
Source
88
441
  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
41.9M
  RetTy VisitType(const Type*) { return RetTy(); }
89
};
90
91
#undef DISPATCH
92
93
}  // end namespace clang
94
95
#endif