 |
|
 |
|
| Files: |
1 |
|
Branches Taken: |
38.9% |
72 / 185 |
| Generated: |
2010-02-10 01:31 |
|
Branches Executed: |
56.2% |
104 / 185 |
| |
|
Line Coverage: |
97.4% |
38 / 39 |
| |
 |
|
 |
1 : //===-- TypeNodes.def - Metadata about Type AST nodes -----------*- 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 AST type info database. Each type node is
11 : // enumerated by providing its name (e.g., "Builtin" or "Enum") and
12 : // base class (e.g., "Type" or "TagType"). Depending on where in the
13 : // abstract syntax tree the type will show up, the enumeration uses
14 : // one of four different macros:
15 : //
16 : // TYPE(Class, Base) - A type that can show up anywhere in the AST,
17 : // and might be dependent, canonical, or non-canonical. All clients
18 : // will need to understand these types.
19 : //
20 : // ABSTRACT_TYPE(Class, Base) - An abstract class that shows up in
21 : // the type hierarchy but has no concrete instances.
22 : //
23 : // NON_CANONICAL_TYPE(Class, Base) - A type that can show up
24 : // anywhere in the AST but will never be a part of a canonical
25 : // type. Clients that only need to deal with canonical types
26 : // (ignoring, e.g., typedefs and other type alises used for
27 : // pretty-printing) can ignore these types.
28 : //
29 : // DEPENDENT_TYPE(Class, Base) - A type that will only show up
30 : // within a C++ template that has not been instantiated, e.g., a
31 : // type that is always dependent. Clients that do not need to deal
32 : // with uninstantiated C++ templates can ignore these types.
33 : //
34 : // There is a fifth macro, independent of the others. Most clients
35 : // will not need to use it.
36 : //
37 : // LEAF_TYPE(Class) - A type that never has inner types. Clients
38 : // which can operate on such types more efficiently may wish to do so.
39 : //
40 : //===----------------------------------------------------------------------===//
41 :
42 : #ifndef ABSTRACT_TYPE
43 : # define ABSTRACT_TYPE(Class, Base) TYPE(Class, Base)
44 : #endif
45 :
46 : #ifndef NON_CANONICAL_TYPE
47 : # define NON_CANONICAL_TYPE(Class, Base) TYPE(Class, Base)
48 : #endif
49 :
50 : #ifndef DEPENDENT_TYPE
51 : # define DEPENDENT_TYPE(Class, Base) TYPE(Class, Base)
52 : #endif
53 :
2: branch 2 taken
819: branch 3 taken
11: branch 8 taken
0: branch 9 not taken
122: branch 14 taken
0: branch 15 not taken
54 161876: TYPE(Builtin, Type)
14: branch 2 taken
3: branch 3 taken
0: branch 8 not taken
0: branch 9 not taken
4: branch 14 taken
0: branch 15 not taken
55 1877: TYPE(Complex, Type)
7760: branch 2 taken
488: branch 3 taken
0: branch 8 not taken
0: branch 9 not taken
43: branch 14 taken
0: branch 15 not taken
56 88570: TYPE(Pointer, Type)
36: branch 2 taken
43: branch 3 taken
0: branch 8 not taken
0: branch 9 not taken
0: branch 14 not taken
0: branch 15 not taken
57 1378: TYPE(BlockPointer, Type)
58 43: ABSTRACT_TYPE(Reference, Type)
267: branch 2 taken
73: branch 3 taken
0: branch 8 not taken
0: branch 9 not taken
0: branch 14 not taken
0: branch 15 not taken
59 12915: TYPE(LValueReference, ReferenceType)
14: branch 2 taken
7: branch 3 taken
0: branch 8 not taken
0: branch 9 not taken
0: branch 14 not taken
0: branch 15 not taken
60 266: TYPE(RValueReference, ReferenceType)
374: branch 2 taken
44: branch 3 taken
0: branch 8 not taken
0: branch 9 not taken
0: branch 14 not taken
0: branch 15 not taken
61 2312: TYPE(MemberPointer, Type)
62 0: ABSTRACT_TYPE(Array, Type)
55: branch 2 taken
44: branch 3 taken
0: branch 8 not taken
0: branch 9 not taken
667: branch 14 taken
0: branch 15 not taken
63 11546: TYPE(ConstantArray, ArrayType)
8: branch 2 taken
7: branch 3 taken
0: branch 8 not taken
0: branch 9 not taken
92: branch 14 taken
0: branch 15 not taken
64 2774: TYPE(IncompleteArray, ArrayType)
0: branch 2 not taken
2: branch 3 taken
0: branch 8 not taken
0: branch 9 not taken
19: branch 14 taken
0: branch 15 not taken
65 1198: TYPE(VariableArray, ArrayType)
0: branch 2 not taken
2: branch 3 taken
0: branch 8 not taken
0: branch 9 not taken
2: branch 14 taken
0: branch 15 not taken
66 608: DEPENDENT_TYPE(DependentSizedArray, ArrayType)
0: branch 2 not taken
2: branch 3 taken
0: branch 8 not taken
0: branch 9 not taken
0: branch 14 not taken
0: branch 15 not taken
67 68: DEPENDENT_TYPE(DependentSizedExtVector, Type)
1421: branch 2 taken
11: branch 3 taken
0: branch 8 not taken
0: branch 9 not taken
0: branch 14 not taken
0: branch 15 not taken
68 4106: TYPE(Vector, Type)
344: branch 2 taken
2: branch 3 taken
0: branch 8 not taken
0: branch 9 not taken
7: branch 14 taken
0: branch 15 not taken
69 758: TYPE(ExtVector, VectorType)
70 3: ABSTRACT_TYPE(Function, Type)
221: branch 2 taken
92: branch 3 taken
0: branch 8 not taken
0: branch 9 not taken
6: branch 14 taken
0: branch 15 not taken
71 76616: TYPE(FunctionProto, FunctionType)
66: branch 2 taken
9: branch 3 taken
0: branch 8 not taken
0: branch 9 not taken
4: branch 14 taken
0: branch 15 not taken
72 12560: TYPE(FunctionNoProto, FunctionType)
0: branch 2 not taken
2: branch 3 taken
0: branch 8 not taken
0: branch 9 not taken
0: branch 14 not taken
0: branch 15 not taken
73 17: DEPENDENT_TYPE(UnresolvedUsing, Type)
168: branch 2 taken
15003: branch 3 taken
0: branch 8 not taken
4: branch 9 taken
0: branch 14 not taken
379: branch 15 taken
74 63790: NON_CANONICAL_TYPE(Typedef, Type)
10: branch 2 taken
135: branch 3 taken
0: branch 8 not taken
0: branch 9 not taken
0: branch 14 not taken
14: branch 15 taken
75 1284: NON_CANONICAL_TYPE(TypeOfExpr, Type)
7: branch 2 taken
13: branch 3 taken
0: branch 8 not taken
0: branch 9 not taken
0: branch 14 not taken
10: branch 15 taken
76 132: NON_CANONICAL_TYPE(TypeOf, Type)
0: branch 2 not taken
5: branch 3 taken
0: branch 8 not taken
0: branch 9 not taken
0: branch 14 not taken
0: branch 15 not taken
77 157: NON_CANONICAL_TYPE(Decltype, Type)
78 5545: ABSTRACT_TYPE(Tag, Type)
21129: branch 2 taken
935: branch 3 taken
4: branch 8 taken
0: branch 9 not taken
36: branch 14 taken
0: branch 15 not taken
79 75889: TYPE(Record, TagType)
3: branch 2 taken
21: branch 3 taken
0: branch 8 not taken
0: branch 9 not taken
0: branch 14 not taken
0: branch 15 not taken
80 1411: TYPE(Enum, TagType)
0: branch 2 not taken
1175: branch 3 taken
0: branch 8 not taken
0: branch 9 not taken
0: branch 14 not taken
5: branch 15 taken
81 5099: NON_CANONICAL_TYPE(Elaborated, Type)
0: branch 2 not taken
3: branch 3 taken
0: branch 8 not taken
0: branch 9 not taken
0: branch 14 not taken
0: branch 15 not taken
82 34942: DEPENDENT_TYPE(TemplateTypeParm, Type)
0: branch 2 not taken
4215: branch 3 taken
0: branch 8 not taken
11: branch 9 taken
0: branch 14 not taken
57: branch 15 taken
83 17575: NON_CANONICAL_TYPE(SubstTemplateTypeParm, Type)
0: branch 2 not taken
13005: branch 3 taken
0: branch 8 not taken
0: branch 9 not taken
0: branch 14 not taken
0: branch 15 not taken
84 37412: TYPE(TemplateSpecialization, Type)
0: branch 2 not taken
2126: branch 3 taken
0: branch 8 not taken
0: branch 9 not taken
0: branch 14 not taken
0: branch 15 not taken
85 5783: NON_CANONICAL_TYPE(QualifiedName, Type)
0: branch 2 not taken
2: branch 3 taken
0: branch 8 not taken
0: branch 9 not taken
0: branch 14 not taken
0: branch 15 not taken
86 1715: DEPENDENT_TYPE(Typename, Type)
1: branch 2 taken
29: branch 3 taken
0: branch 8 not taken
0: branch 9 not taken
0: branch 14 not taken
0: branch 15 not taken
87 7545: TYPE(ObjCInterface, Type)
2873: branch 2 taken
204: branch 3 taken
0: branch 9 not taken
31: branch 14 taken
0: branch 15 not taken
88 22589: TYPE(ObjCObjectPointer, Type)
89 :
90 : // These types are always leaves in the type hierarchy.
91 : #ifdef LEAF_TYPE
92 55604: LEAF_TYPE(Enum)
93 235422: LEAF_TYPE(Builtin)
94 12553: LEAF_TYPE(ObjCInterface)
95 2860: LEAF_TYPE(TemplateTypeParm)
96 : #undef LEAF_TYPE
97 : #endif
98 :
99 : #undef DEPENDENT_TYPE
100 : #undef NON_CANONICAL_TYPE
101 : #undef ABSTRACT_TYPE
102 : #undef TYPE
Generated: 2010-02-10 01:31 by zcov