 |
|
 |
|
| Files: |
1 |
|
Branches Taken: |
58.0% |
101 / 174 |
| Generated: |
2010-02-10 01:31 |
|
Branches Executed: |
100.0% |
174 / 174 |
| |
|
Line Coverage: |
98.4% |
63 / 64 |
| |
 |
|
 |
1 : //===-- DeclNodes.def - Metadata about Decl 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 declaration nodes within the AST. The
11 : // description of the declaration nodes uses six macros:
12 : //
13 : // DECL(Derived, Base) describes a normal declaration type Derived
14 : // and specifies its base class. Note that Derived should not have
15 : // the Decl suffix on it, while Base should.
16 : //
17 : // LAST_DECL(Derived, Base) is like DECL, but is used for the last
18 : // declaration in the list.
19 : //
20 : // ABSTRACT_DECL(Derived, Base) describes an abstract class that is
21 : // used to specify a classification of declarations. For example,
22 : // TagDecl is an abstract class used to describe the various kinds of
23 : // "tag" declarations (unions, structs, classes, enums).
24 : //
25 : // DECL_CONTEXT(Decl) specifies that Decl is a kind of declaration
26 : // that is also a DeclContext.
27 : //
28 : // LAST_DECL_CONTEXT(Decl) is like DECL_CONTEXT, but is used for the
29 : // last declaration context.
30 : //
31 : // DECL_RANGE(CommonBase, Start, End) specifies a range of
32 : // declaration values that have a common (potentially indirect) base
33 : // class.
34 : //
35 : // LAST_DECL_RANGE(CommonBase, Start, End) is like DECL_RANGE, but is
36 : // used for the last declaration range.
37 : //
38 : // Note that, due to the use of ranges, the order of the these
39 : // declarations is significant. A declaration should be listed under
40 : // its base class.
41 : // ===----------------------------------------------------------------------===//
42 :
43 : #ifndef DECL
44 : # define DECL(Derived, Base)
45 : #endif
46 :
47 : #ifndef LAST_DECL
48 : # define LAST_DECL(Derived, Base) DECL(Derived, Base)
49 : #endif
50 :
51 : #ifndef ABSTRACT_DECL
52 : # define ABSTRACT_DECL(Derived, Base)
53 : #endif
54 :
55 : #ifndef DECL_CONTEXT
56 : # define DECL_CONTEXT(Decl)
57 : #endif
58 :
59 : #ifndef DECL_CONTEXT_BASE
60 : # define DECL_CONTEXT_BASE(Decl) DECL_CONTEXT(Decl)
61 : #endif
62 :
63 : #ifndef LAST_DECL_CONTEXT
64 : # define LAST_DECL_CONTEXT(Decl) DECL_CONTEXT(Decl)
65 : #endif
66 :
67 : #ifndef DECL_RANGE
68 : # define DECL_RANGE(CommonBase, Start, End)
69 : #endif
70 :
71 : #ifndef LAST_DECL_RANGE
72 : # define LAST_DECL_RANGE(CommonBase, Start, End) \
73 : DECL_RANGE(CommonBase, Start, End)
74 : #endif
75 :
0: branch 0 not taken
2: branch 1 taken
76 187: DECL(TranslationUnit, Decl)
77 2052: ABSTRACT_DECL(Named, Decl)
0: branch 0 not taken
2: branch 1 taken
78 171: DECL(Namespace, NamedDecl)
0: branch 0 not taken
2: branch 1 taken
79 9: DECL(UsingDirective, NamedDecl)
0: branch 0 not taken
2: branch 1 taken
80 6: DECL(NamespaceAlias, NamedDecl)
81 1591: ABSTRACT_DECL(Type, NamedDecl)
2: branch 0 taken
0: branch 1 not taken
82 686: DECL(Typedef, TypeDecl)
0: branch 0 not taken
2: branch 1 taken
83 8: DECL(UnresolvedUsingTypename, TypeDecl)
84 1527: ABSTRACT_DECL(Tag, TypeDecl)
0: branch 0 not taken
2: branch 1 taken
85 412: DECL(Enum, TagDecl)
0: branch 0 not taken
2: branch 1 taken
86 1617: DECL(Record, TagDecl)
0: branch 0 not taken
2: branch 1 taken
87 4593: DECL(CXXRecord, RecordDecl)
0: branch 0 not taken
2: branch 1 taken
88 80: DECL(ClassTemplateSpecialization, CXXRecordDecl)
0: branch 0 not taken
2: branch 1 taken
89 8: DECL(ClassTemplatePartialSpecialization,
90 : ClassTemplateSpecializationDecl)
0: branch 0 not taken
2: branch 1 taken
91 159: DECL(TemplateTypeParm, TypeDecl)
92 328: ABSTRACT_DECL(Value, NamedDecl)
0: branch 0 not taken
2: branch 1 taken
93 33: DECL(EnumConstant, ValueDecl)
0: branch 0 not taken
2: branch 1 taken
94 16: DECL(UnresolvedUsingValue, ValueDecl)
95 328: ABSTRACT_DECL(Declarator, ValueDecl)
0: branch 0 not taken
2: branch 1 taken
96 1375: DECL(Function, DeclaratorDecl)
0: branch 0 not taken
2: branch 1 taken
97 6157: DECL(CXXMethod, FunctionDecl)
0: branch 0 not taken
2: branch 1 taken
98 3151: DECL(CXXConstructor, CXXMethodDecl)
0: branch 0 not taken
2: branch 1 taken
99 1531: DECL(CXXDestructor, CXXMethodDecl)
0: branch 0 not taken
2: branch 1 taken
100 146: DECL(CXXConversion, CXXMethodDecl)
0: branch 0 not taken
2: branch 1 taken
101 612: DECL(Field, DeclaratorDecl)
0: branch 0 not taken
2: branch 1 taken
102 52: DECL(ObjCIvar, FieldDecl)
0: branch 0 not taken
2: branch 1 taken
103 16: DECL(ObjCAtDefsField, FieldDecl)
0: branch 0 not taken
2: branch 1 taken
104 1178: DECL(Var, DeclaratorDecl)
0: branch 0 not taken
2: branch 1 taken
105 10: DECL(ImplicitParam, VarDecl)
0: branch 0 not taken
2: branch 1 taken
106 353: DECL(ParmVar, VarDecl)
0: branch 0 not taken
2: branch 1 taken
107 49: DECL(NonTypeTemplateParm, VarDecl)
0: branch 0 not taken
2: branch 1 taken
108 57: DECL(Template, NamedDecl)
0: branch 0 not taken
2: branch 1 taken
109 68: DECL(FunctionTemplate, TemplateDecl)
0: branch 0 not taken
2: branch 1 taken
110 182: DECL(ClassTemplate, TemplateDecl)
0: branch 0 not taken
2: branch 1 taken
111 49: DECL(TemplateTemplateParm, TemplateDecl)
0: branch 0 not taken
2: branch 1 taken
112 11: DECL(Using, NamedDecl)
0: branch 0 not taken
2: branch 1 taken
113 8: DECL(UsingShadow, NamedDecl)
0: branch 0 not taken
2: branch 1 taken
114 214: DECL(ObjCMethod, NamedDecl)
0: branch 0 not taken
2: branch 1 taken
115 4: DECL(ObjCContainer, NamedDecl)
0: branch 0 not taken
2: branch 1 taken
116 103: DECL(ObjCCategory, ObjCContainerDecl)
0: branch 0 not taken
2: branch 1 taken
117 95: DECL(ObjCProtocol, ObjCContainerDecl)
1: branch 0 taken
1: branch 1 taken
118 243: DECL(ObjCInterface, ObjCContainerDecl)
119 0: ABSTRACT_DECL(ObjCImpl, ObjCContainerDecl)
0: branch 0 not taken
2: branch 1 taken
120 6: DECL(ObjCCategoryImpl, ObjCImplDecl)
0: branch 0 not taken
2: branch 1 taken
121 13: DECL(ObjCImplementation, ObjCImplDecl)
0: branch 0 not taken
2: branch 1 taken
122 20: DECL(ObjCProperty, NamedDecl)
0: branch 0 not taken
2: branch 1 taken
123 5: DECL(ObjCCompatibleAlias, NamedDecl)
0: branch 0 not taken
2: branch 1 taken
124 4: DECL(LinkageSpec, Decl)
0: branch 0 not taken
2: branch 1 taken
125 10: DECL(ObjCPropertyImpl, Decl)
0: branch 0 not taken
2: branch 1 taken
126 7: DECL(ObjCForwardProtocol, Decl)
0: branch 0 not taken
2: branch 1 taken
127 36: DECL(ObjCClass, Decl)
0: branch 0 not taken
2: branch 1 taken
128 10: DECL(FileScopeAsm, Decl)
0: branch 0 not taken
2: branch 1 taken
129 22: DECL(Friend, Decl)
0: branch 0 not taken
2: branch 1 taken
130 4: DECL(FriendTemplate, Decl)
0: branch 0 not taken
2: branch 1 taken
131 84: DECL(StaticAssert, Decl)
0: branch 0 not taken
2: branch 1 taken
132 8: LAST_DECL(Block, Decl)
133 :
134 : // Declaration contexts. DECL_CONTEXT_BASE indicates that it has subclasses.
763: branch 0 taken
0: branch 1 not taken
82962: branch 2 taken
0: branch 3 not taken
135 83725: DECL_CONTEXT(TranslationUnit)
286: branch 0 taken
0: branch 1 not taken
38934: branch 2 taken
0: branch 3 not taken
136 39305: DECL_CONTEXT(Namespace)
49: branch 0 taken
0: branch 1 not taken
18381: branch 2 taken
0: branch 3 not taken
137 18430: DECL_CONTEXT(LinkageSpec)
3649: branch 0 taken
0: branch 1 not taken
4057: branch 2 taken
0: branch 3 not taken
138 7706: DECL_CONTEXT(ObjCMethod)
61395: branch 1 taken
2013: branch 2 taken
17530: branch 4 taken
43865: branch 5 taken
17530: branch 6 taken
45878: branch 7 taken
33886: branch 8 taken
0: branch 9 not taken
8772: branch 10 taken
25114: branch 11 taken
8772: branch 12 taken
0: branch 13 not taken
409304: branch 14 taken
0: branch 15 not taken
216327: branch 16 taken
192977: branch 17 taken
216327: branch 18 taken
0: branch 19 not taken
139 506598: DECL_CONTEXT_BASE(Tag)
43428: branch 1 taken
2450: branch 2 taken
23226: branch 4 taken
20202: branch 5 taken
23226: branch 6 taken
22652: branch 7 taken
25114: branch 8 taken
0: branch 9 not taken
17501: branch 10 taken
7613: branch 11 taken
17501: branch 12 taken
0: branch 13 not taken
192977: branch 14 taken
0: branch 15 not taken
182155: branch 16 taken
10822: branch 17 taken
182155: branch 18 taken
0: branch 19 not taken
140 263969: DECL_CONTEXT_BASE(Function)
14870: branch 1 taken
7782: branch 2 taken
12154: branch 4 taken
2716: branch 5 taken
12154: branch 6 taken
10498: branch 7 taken
7613: branch 8 taken
0: branch 9 not taken
7613: branch 10 taken
0: branch 11 not taken
7613: branch 12 taken
0: branch 13 not taken
10822: branch 14 taken
0: branch 15 not taken
10822: branch 16 taken
0: branch 17 not taken
10822: branch 18 taken
0: branch 19 not taken
141 41267: DECL_CONTEXT_BASE(ObjCContainer)
83: branch 0 taken
0: branch 1 not taken
1605: branch 2 taken
0: branch 3 not taken
142 1691: LAST_DECL_CONTEXT(Block)
143 :
144 : // Declaration ranges
145 : DECL_RANGE(Named, Namespace, ObjCCompatibleAlias)
146 : DECL_RANGE(ObjCContainer, ObjCContainer, ObjCImplementation)
147 : DECL_RANGE(Field, Field, ObjCAtDefsField)
148 : DECL_RANGE(Type, Typedef, TemplateTypeParm)
149 : DECL_RANGE(Tag, Enum, ClassTemplatePartialSpecialization)
150 : DECL_RANGE(Record, Record, ClassTemplatePartialSpecialization)
151 : DECL_RANGE(Value, EnumConstant, NonTypeTemplateParm)
152 : DECL_RANGE(Declarator, Function, NonTypeTemplateParm)
153 : DECL_RANGE(Function, Function, CXXConversion)
154 : DECL_RANGE(Template, Template, TemplateTemplateParm)
155 : DECL_RANGE(ObjCImpl, ObjCCategoryImpl, ObjCImplementation)
156 : LAST_DECL_RANGE(Var, Var, NonTypeTemplateParm)
157 :
158 : #undef LAST_DECL_RANGE
159 : #undef DECL_RANGE
160 : #undef LAST_DECL_CONTEXT
161 : #undef DECL_CONTEXT_BASE
162 : #undef DECL_CONTEXT
163 : #undef ABSTRACT_DECL
164 : #undef LAST_DECL
165 : #undef DECL
Generated: 2010-02-10 01:31 by zcov