Coverage Report

Created: 2019-07-24 05:18

/Users/buildslave/jenkins/workspace/clang-stage2-coverage-R/llvm/tools/clang/include/clang/AST/TypeNodes.def
Line
Count
Source (jump to first uncovered line)
1
0
//===-- TypeNodes.def - Metadata about Type AST nodes -----------*- C++ -*-===//
2
0
//
3
0
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4
0
// See https://llvm.org/LICENSE.txt for license information.
5
0
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6
0
//
7
0
//===----------------------------------------------------------------------===//
8
0
//
9
0
//  This file defines the AST type info database. Each type node is
10
0
//  enumerated by providing its name (e.g., "Builtin" or "Enum") and
11
0
//  base class (e.g., "Type" or "TagType"). Depending on where in the
12
0
//  abstract syntax tree the type will show up, the enumeration uses
13
0
//  one of five different macros:
14
0
//
15
0
//    TYPE(Class, Base) - A type that can show up anywhere in the AST,
16
0
//    and might be dependent, canonical, or non-canonical. All clients
17
0
//    will need to understand these types.
18
0
//
19
0
//    ABSTRACT_TYPE(Class, Base) - An abstract class that shows up in
20
0
//    the type hierarchy but has no concrete instances.
21
0
//
22
0
//    NON_CANONICAL_TYPE(Class, Base) - A type that can show up
23
0
//    anywhere in the AST but will never be a part of a canonical
24
0
//    type. Clients that only need to deal with canonical types
25
0
//    (ignoring, e.g., typedefs and other type aliases used for
26
0
//    pretty-printing) can ignore these types.
27
0
//
28
0
//    DEPENDENT_TYPE(Class, Base) - A type that will only show up
29
0
//    within a C++ template that has not been instantiated, e.g., a
30
0
//    type that is always dependent. Clients that do not need to deal
31
0
//    with uninstantiated C++ templates can ignore these types.
32
0
//
33
0
//    NON_CANONICAL_UNLESS_DEPENDENT_TYPE(Class, Base) - A type that
34
0
//    is non-canonical unless it is dependent.  Defaults to TYPE because
35
0
//    it is neither reliably dependent nor reliably non-canonical.
36
0
//
37
0
//  There is a sixth macro, independent of the others.  Most clients
38
0
//  will not need to use it.
39
0
//
40
0
//    LEAF_TYPE(Class) - A type that never has inner types.  Clients
41
0
//    which can operate on such types more efficiently may wish to do so.
42
0
//
43
0
//===----------------------------------------------------------------------===//
44
0
45
#ifndef ABSTRACT_TYPE
46
#  define ABSTRACT_TYPE(Class, Base) TYPE(Class, Base)
47
#endif
48
49
#ifndef NON_CANONICAL_TYPE
50
231M
#  define NON_CANONICAL_TYPE(Class, Base) TYPE(Class, Base)
51
#endif
52
53
#ifndef DEPENDENT_TYPE
54
150M
#  define DEPENDENT_TYPE(Class, Base) TYPE(Class, Base)
55
#endif
56
57
#ifndef NON_CANONICAL_UNLESS_DEPENDENT_TYPE
58
130M
#  define NON_CANONICAL_UNLESS_DEPENDENT_TYPE(Class, Base) TYPE(Class, Base)
59
#endif
60
61
148M
TYPE(Builtin, Type)
62
48.2M
TYPE79.2k
(Complex, Type)
63
48.8M
TYPE(Pointer, Type)
64
14.1M
TYPE177k
(BlockPointer, Type)
65
43.2k
ABSTRACT_TYPE(Reference, Type)
66
18.7M
TYPE(LValueReference, ReferenceType)
67
5.17M
TYPE(RValueReference, ReferenceType)
68
585k
TYPE(MemberPointer, Type)
69
59.6k
ABSTRACT_TYPE(Array, Type)
70
5.82M
TYPE(ConstantArray, ArrayType)
71
3.96M
TYPE514k
(IncompleteArray, ArrayType)
72
148k
TYPE(VariableArray, ArrayType)
73
509k
DEPENDENT_TYPE(DependentSizedArray, ArrayType)
74
122k
DEPENDENT_TYPE(DependentSizedExtVector, Type)
75
123k
DEPENDENT_TYPE(DependentAddressSpace, Type)
76
18.8M
TYPE(Vector, Type)
77
15.9M
DEPENDENT_TYPE122k
(DependentVector, Type)
78
592k
TYPE(ExtVector, VectorType)
79
498k
ABSTRACT_TYPE(Function, Type)
80
46.4M
TYPE(FunctionProto, FunctionType)
81
2.82M
TYPE247k
(FunctionNoProto, FunctionType)
82
123k
DEPENDENT_TYPE(UnresolvedUsing, Type)
83
2.30M
NON_CANONICAL_TYPE(Paren, Type)
84
177M
NON_CANONICAL_TYPE(Typedef, Type)
85
37.6M
NON_CANONICAL_TYPE69.7k
(MacroQualified, Type)
86
13.0k
NON_CANONICAL_TYPE3.30k
(Adjusted, Type)
87
136k
NON_CANONICAL_TYPE(Decayed, AdjustedType)
88
168k
NON_CANONICAL_UNLESS_DEPENDENT_TYPE(TypeOfExpr, Type)
89
123k
NON_CANONICAL_UNLESS_DEPENDENT_TYPE(TypeOf, Type)
90
2.04M
NON_CANONICAL_UNLESS_DEPENDENT_TYPE(Decltype, Type)
91
223k
NON_CANONICAL_UNLESS_DEPENDENT_TYPE134k
(UnaryTransform, Type)
92
3.75k
ABSTRACT_TYPE(Tag, Type)
93
71.3M
TYPE(Record, TagType)
94
26.8M
TYPE5.96M
(Enum, TagType)
95
23.0M
NON_CANONICAL_TYPE(Elaborated, Type)
96
10.2M
NON_CANONICAL_TYPE1.46M
(Attributed, Type)
97
113M
DEPENDENT_TYPE(TemplateTypeParm, Type)
98
26.5M
NON_CANONICAL_TYPE(SubstTemplateTypeParm, Type)
99
5.00M
DEPENDENT_TYPE180k
(SubstTemplateTypeParmPack, Type)
100
125M
NON_CANONICAL_UNLESS_DEPENDENT_TYPE(TemplateSpecialization, Type)
101
9.22M
ABSTRACT_TYPE(Deduced, Type)
102
9.22M
TYPE808k
(Auto, DeducedType)
103
226k
TYPE19.8k
(DeducedTemplateSpecialization, DeducedType)
104
10.9M
DEPENDENT_TYPE(InjectedClassName, Type)
105
24.1M
DEPENDENT_TYPE(DependentName, Type)
106
783k
DEPENDENT_TYPE(DependentTemplateSpecialization, Type)
107
1.44M
NON_CANONICAL_UNLESS_DEPENDENT_TYPE(PackExpansion, Type)
108
117k
NON_CANONICAL_TYPE68.4k
(ObjCTypeParam, Type)
109
250k
TYPE(ObjCObject, Type)
110
848k
TYPE(ObjCInterface, ObjCObjectType)
111
1.06M
TYPE(ObjCObjectPointer, Type)
112
366k
TYPE1.03k
(Pipe, Type)
113
20.9k
TYPE(Atomic, Type)
114
3.01k
115
#ifdef LAST_TYPE
116
LAST_TYPE(Atomic)
117
#undef LAST_TYPE
118
#endif
119
120
3.01k
// These types are always leaves in the type hierarchy.
121
#ifdef LEAF_TYPE
122
LEAF_TYPE(Enum)
123
LEAF_TYPE(Builtin)
124
LEAF_TYPE(Record)
125
LEAF_TYPE(InjectedClassName)
126
LEAF_TYPE(ObjCInterface)
127
LEAF_TYPE(TemplateTypeParm)
128
#undef LEAF_TYPE
129
#endif
130
131
3.01k
#undef NON_CANONICAL_UNLESS_DEPENDENT_TYPE
132
3.01k
#undef DEPENDENT_TYPE
133
3.01k
#undef NON_CANONICAL_TYPE
134
3.01k
#undef ABSTRACT_TYPE
135
3.01k
#undef TYPE