xref: /aosp_15_r20/external/clang/test/Index/usrs.m (revision 67e74705e28f6214e480b399dd47ea732279e315)
1*67e74705SXin Li
2*67e74705SXin Li
3*67e74705SXin Listatic inline int my_helper(int x, int y) { return x + y; }
4*67e74705SXin Li
5*67e74705SXin Lienum {
6*67e74705SXin Li  ABA,
7*67e74705SXin Li  CADABA
8*67e74705SXin Li};
9*67e74705SXin Li
10*67e74705SXin Lienum {
11*67e74705SXin Li  FOO,
12*67e74705SXin Li  BAR
13*67e74705SXin Li};
14*67e74705SXin Li
15*67e74705SXin Litypedef struct {
16*67e74705SXin Li  int wa;
17*67e74705SXin Li  int moo;
18*67e74705SXin Li} MyStruct;
19*67e74705SXin Li
20*67e74705SXin Lienum Pizza {
21*67e74705SXin Li  CHEESE,
22*67e74705SXin Li  MUSHROOMS
23*67e74705SXin Li};
24*67e74705SXin Li
25*67e74705SXin Li@interface Foo {
26*67e74705SXin Li  id x;
27*67e74705SXin Li  id y;
28*67e74705SXin Li}
29*67e74705SXin Li- (id) godzilla;
30*67e74705SXin Li+ (id) kingkong;
31*67e74705SXin Li@property int d1;
32*67e74705SXin Li@end
33*67e74705SXin Li
34*67e74705SXin Li@implementation Foo
35*67e74705SXin Li- (id) godzilla {
36*67e74705SXin Li  static int a = 0;
37*67e74705SXin Li  extern int z;
38*67e74705SXin Li  return 0;
39*67e74705SXin Li}
40*67e74705SXin Li+ (id) kingkong {
41*67e74705SXin Li  int local_var;
42*67e74705SXin Li  return 0;
43*67e74705SXin Li}
44*67e74705SXin Li@synthesize d1;
45*67e74705SXin Li@end
46*67e74705SXin Li
47*67e74705SXin Liint z;
48*67e74705SXin Li
49*67e74705SXin Listatic int local_func(int x) { return x; }
50*67e74705SXin Li
51*67e74705SXin Li@interface CWithExt
52*67e74705SXin Li- (id) meth1;
53*67e74705SXin Li@end
54*67e74705SXin Li@interface CWithExt ()
55*67e74705SXin Li- (id) meth2;
56*67e74705SXin Li@end
57*67e74705SXin Li@interface CWithExt ()
58*67e74705SXin Li- (id) meth3;
59*67e74705SXin Li@end
60*67e74705SXin Li@interface CWithExt (Bar)
61*67e74705SXin Li- (id) meth4;
62*67e74705SXin Li@end
63*67e74705SXin Li@implementation CWithExt
64*67e74705SXin Li- (id) meth1 { return 0; }
65*67e74705SXin Li- (id) meth2 { return 0; }
66*67e74705SXin Li- (id) meth3 { return 0; }
67*67e74705SXin Li@end
68*67e74705SXin Li@implementation CWithExt (Bar)
69*67e74705SXin Li- (id) meth4 { return 0; }
70*67e74705SXin Li@end
71*67e74705SXin Li
72*67e74705SXin Livoid aux_1(int, int, int);
73*67e74705SXin Liint test_multi_declaration(void) {
74*67e74705SXin Li  int foo = 1, bar = 2, baz = 3;
75*67e74705SXin Li  aux_1(foo, bar, baz);
76*67e74705SXin Li  return 0;
77*67e74705SXin Li}
78*67e74705SXin Li
79*67e74705SXin Li@protocol P1
80*67e74705SXin Li- (void)method;
81*67e74705SXin Li@end
82*67e74705SXin Li
83*67e74705SXin Li@interface CWithExt2
84*67e74705SXin Li@end
85*67e74705SXin Li@interface CWithExt2 () {
86*67e74705SXin Li  id var_ext;
87*67e74705SXin Li}
88*67e74705SXin Li@property (assign) id pro_ext;
89*67e74705SXin Li-(int)methodWithFn:(void (*)(int *p))fn;
90*67e74705SXin Li@end
91*67e74705SXin Li
92*67e74705SXin Li#include <usrs-system.h>
93*67e74705SXin Li
94*67e74705SXin Li#define MACRO1 123
95*67e74705SXin Li
96*67e74705SXin Li#define MACRO2 123
97*67e74705SXin Li#undef MACRO2
98*67e74705SXin Li#define MACRO2 789
99*67e74705SXin Li
100*67e74705SXin Li#define MACRO3(X) 123, X
101*67e74705SXin Li#define MACRO3(X) 789, X
102*67e74705SXin Li
103*67e74705SXin Li// RUN: c-index-test -test-load-source-usrs all -target x86_64-apple-macosx10.7 %s -isystem %S/Inputs | FileCheck %s
104*67e74705SXin Li// CHECK: usrs-system.h c:@macro@MACRO_FROM_SYSTEM_HEADER_1 Extent=[1:9 - 1:40]
105*67e74705SXin Li// CHECK: usrs.m c:usrs.m@1265@macro@MACRO1 Extent=[94:9 - 94:19]
106*67e74705SXin Li// CHECK: usrs.m c:usrs.m@1285@macro@MACRO2 Extent=[96:9 - 96:19]
107*67e74705SXin Li// CHECK: usrs.m c:usrs.m@1318@macro@MACRO2 Extent=[98:9 - 98:19]
108*67e74705SXin Li// CHECK: usrs.m c:usrs.m@1338@macro@MACRO3 Extent=[100:9 - 100:25]
109*67e74705SXin Li// CHECK: usrs.m c:usrs.m@1363@macro@MACRO3 Extent=[101:9 - 101:25]
110*67e74705SXin Li// CHECK: usrs.m c:usrs.m@F@my_helper Extent=[3:1 - 3:60]
111*67e74705SXin Li// CHECK: usrs.m c:usrs.m@95@F@my_helper@x Extent=[3:29 - 3:34]
112*67e74705SXin Li// CHECK: usrs.m c:usrs.m@102@F@my_helper@y Extent=[3:36 - 3:41]
113*67e74705SXin Li// CHECK: usrs.m c:@Ea@ABA Extent=[5:1 - 8:2]
114*67e74705SXin Li// CHECK: usrs.m c:@Ea@ABA@ABA Extent=[6:3 - 6:6]
115*67e74705SXin Li// CHECK: usrs.m c:@Ea@ABA@CADABA Extent=[7:3 - 7:9]
116*67e74705SXin Li// CHECK: usrs.m c:@Ea@FOO Extent=[10:1 - 13:2]
117*67e74705SXin Li// CHECK: usrs.m c:@Ea@FOO@FOO Extent=[11:3 - 11:6]
118*67e74705SXin Li// CHECK: usrs.m c:@Ea@FOO@BAR Extent=[12:3 - 12:6]
119*67e74705SXin Li// CHECK: usrs.m c:@SA@MyStruct Extent=[15:9 - 18:2]
120*67e74705SXin Li// CHECK: usrs.m c:@SA@MyStruct@FI@wa Extent=[16:3 - 16:9]
121*67e74705SXin Li// CHECK: usrs.m c:@SA@MyStruct@FI@moo Extent=[17:3 - 17:10]
122*67e74705SXin Li// CHECK: usrs.m c:usrs.m@T@MyStruct Extent=[15:1 - 18:11]
123*67e74705SXin Li// CHECK: usrs.m c:@E@Pizza Extent=[20:1 - 23:2]
124*67e74705SXin Li// CHECK: usrs.m c:@E@Pizza@CHEESE Extent=[21:3 - 21:9]
125*67e74705SXin Li// CHECK: usrs.m c:@E@Pizza@MUSHROOMS Extent=[22:3 - 22:12]
126*67e74705SXin Li// CHECK: usrs.m c:objc(cs)Foo Extent=[25:1 - 32:5]
127*67e74705SXin Li// CHECK: usrs.m c:objc(cs)Foo@x Extent=[26:3 - 26:7]
128*67e74705SXin Li// CHECK: usrs.m c:objc(cs)Foo@y Extent=[27:3 - 27:7]
129*67e74705SXin Li// CHECK: usrs.m c:objc(cs)Foo(im)godzilla Extent=[29:1 - 29:17]
130*67e74705SXin Li// CHECK: usrs.m c:objc(cs)Foo(cm)kingkong Extent=[30:1 - 30:17]
131*67e74705SXin Li// CHECK: usrs.m c:objc(cs)Foo(py)d1 Extent=[31:1 - 31:17]
132*67e74705SXin Li// CHECK: usrs.m c:objc(cs)Foo(im)d1 Extent=[31:15 - 31:17]
133*67e74705SXin Li// CHECK: usrs.m c:objc(cs)Foo(im)setD1: Extent=[31:15 - 31:17]
134*67e74705SXin Li// CHECK: usrs.m c:usrs.m@352objc(cs)Foo(im)setD1:@d1 Extent=[31:15 - 31:17]
135*67e74705SXin Li// CHECK: usrs.m c:objc(cs)Foo Extent=[34:1 - 45:2]
136*67e74705SXin Li// CHECK: usrs.m c:objc(cs)Foo(im)godzilla Extent=[35:1 - 39:2]
137*67e74705SXin Li// CHECK: usrs.m c:usrs.m@402objc(cs)Foo(im)godzilla@a Extent=[36:3 - 36:19]
138*67e74705SXin Li// CHECK: usrs.m c:@z Extent=[37:3 - 37:15]
139*67e74705SXin Li// CHECK: usrs.m c:objc(cs)Foo(cm)kingkong Extent=[40:1 - 43:2]
140*67e74705SXin Li// CHECK: usrs.m c:usrs.m@470objc(cs)Foo(cm)kingkong@local_var Extent=[41:3 - 41:16]
141*67e74705SXin Li// CHECK: usrs.m c:objc(cs)Foo(py)d1 Extent=[44:1 - 44:15]
142*67e74705SXin Li// CHECK: usrs.m c:@z Extent=[47:1 - 47:6]
143*67e74705SXin Li// CHECK: usrs.m c:usrs.m@F@local_func Extent=[49:1 - 49:43]
144*67e74705SXin Li// CHECK: usrs.m c:usrs.m@551@F@local_func@x Extent=[49:23 - 49:28]
145*67e74705SXin Li// CHECK: usrs.m c:objc(cs)CWithExt Extent=[51:1 - 53:5]
146*67e74705SXin Li// CHECK: usrs.m c:objc(cs)CWithExt(im)meth1 Extent=[52:1 - 52:14]
147*67e74705SXin Li// CHECK: usrs.m c:objc(ext)[email protected]@612 Extent=[54:1 - 56:5]
148*67e74705SXin Li// CHECK: usrs.m c:objc(cs)CWithExt(im)meth2 Extent=[55:1 - 55:14]
149*67e74705SXin Li// CHECK: usrs.m c:objc(ext)[email protected]@654 Extent=[57:1 - 59:5]
150*67e74705SXin Li// CHECK: usrs.m c:objc(cs)CWithExt(im)meth3 Extent=[58:1 - 58:14]
151*67e74705SXin Li// CHECK: usrs.m c:objc(cy)CWithExt@Bar Extent=[60:1 - 62:5]
152*67e74705SXin Li// CHECK: usrs.m c:objc(cs)CWithExt(im)meth4 Extent=[61:1 - 61:14]
153*67e74705SXin Li// CHECK: usrs.m c:objc(cs)CWithExt Extent=[63:1 - 67:2]
154*67e74705SXin Li// CHECK: usrs.m c:objc(cs)CWithExt(im)meth1 Extent=[64:1 - 64:27]
155*67e74705SXin Li// CHECK: usrs.m c:objc(cs)CWithExt(im)meth2 Extent=[65:1 - 65:27]
156*67e74705SXin Li// CHECK: usrs.m c:objc(cs)CWithExt(im)meth3 Extent=[66:1 - 66:27]
157*67e74705SXin Li// CHECK: usrs.m c:objc(cy)CWithExt@Bar Extent=[68:1 - 70:2]
158*67e74705SXin Li// CHECK: usrs.m c:objc(cs)CWithExt(im)meth4 Extent=[69:1 - 69:27]
159*67e74705SXin Li// CHECK: usrs.m c:@F@aux_1 Extent=[72:1 - 72:26]
160*67e74705SXin Li// CHECK: usrs.m c:@F@test_multi_declaration Extent=[73:1 - 77:2]
161*67e74705SXin Li// CHECK: usrs.m c:usrs.m@980@F@test_multi_declaration@foo Extent=[74:3 - 74:14]
162*67e74705SXin Li// CHECK: usrs.m c:usrs.m@980@F@test_multi_declaration@bar Extent=[74:16 - 74:23]
163*67e74705SXin Li// CHECK: usrs.m c:usrs.m@980@F@test_multi_declaration@baz Extent=[74:25 - 74:32]
164*67e74705SXin Li// CHECK: usrs.m c:objc(pl)P1 Extent=[79:1 - 81:5]
165*67e74705SXin Li// CHECK: usrs.m c:objc(pl)P1(im)method Extent=[80:1 - 80:16]
166*67e74705SXin Li// CHECK: usrs.m c:objc(cs)CWithExt2 Extent=[83:1 - 84:5]
167*67e74705SXin Li// CHECK: usrs.m c:objc(ext)[email protected]@1111 Extent=[85:1 - 90:5]
168*67e74705SXin Li// CHECK: usrs.m c:objc(cs)CWithExt2@var_ext Extent=[86:3 - 86:13]
169*67e74705SXin Li// CHECK: usrs.m c:objc(cs)CWithExt2(py)pro_ext Extent=[88:1 - 88:30]
170*67e74705SXin Li// CHECK: usrs.m c:objc(cs)CWithExt2(im)pro_ext Extent=[88:23 - 88:30]
171*67e74705SXin Li// CHECK: usrs.m c:objc(cs)CWithExt2(im)setPro_ext: Extent=[88:23 - 88:30]
172*67e74705SXin Li
173*67e74705SXin Li// RUN: c-index-test -test-load-source all %s -isystem %S/Inputs | FileCheck -check-prefix=CHECK-source %s
174*67e74705SXin Li// CHECK-source: usrs-system.h:1:9: macro definition=MACRO_FROM_SYSTEM_HEADER_1 Extent=[1:9 - 1:40]
175*67e74705SXin Li// CHECK-source: usrs.m:94:9: macro definition=MACRO1 Extent=[94:9 - 94:19]
176*67e74705SXin Li// CHECK-source: usrs.m:96:9: macro definition=MACRO2 Extent=[96:9 - 96:19]
177*67e74705SXin Li// CHECK-source: usrs.m:98:9: macro definition=MACRO2 Extent=[98:9 - 98:19]
178*67e74705SXin Li// CHECK-source: usrs.m:100:9: macro definition=MACRO3 Extent=[100:9 - 100:25]
179*67e74705SXin Li// CHECK-source: usrs.m:101:9: macro definition=MACRO3 Extent=[101:9 - 101:25]
180*67e74705SXin Li// CHECK-source: usrs.m:3:19: FunctionDecl=my_helper:3:19 (Definition) Extent=[3:1 - 3:60]
181*67e74705SXin Li// CHECK-source: usrs.m:3:33: ParmDecl=x:3:33 (Definition) Extent=[3:29 - 3:34]
182*67e74705SXin Li// CHECK-source: usrs.m:3:40: ParmDecl=y:3:40 (Definition) Extent=[3:36 - 3:41]
183*67e74705SXin Li// CHECK-source: usrs.m:3:43: CompoundStmt= Extent=[3:43 - 3:60]
184*67e74705SXin Li// CHECK-source: usrs.m:3:45: ReturnStmt= Extent=[3:45 - 3:57]
185*67e74705SXin Li// CHECK-source: usrs.m:3:52: BinaryOperator= Extent=[3:52 - 3:57]
186*67e74705SXin Li// CHECK-source: usrs.m:3:52: DeclRefExpr=x:3:33 Extent=[3:52 - 3:53]
187*67e74705SXin Li// CHECK-source: usrs.m:3:56: DeclRefExpr=y:3:40 Extent=[3:56 - 3:57]
188*67e74705SXin Li// CHECK-source: usrs.m:5:1: EnumDecl=:5:1 (Definition) Extent=[5:1 - 8:2]
189*67e74705SXin Li// CHECK-source: usrs.m:6:3: EnumConstantDecl=ABA:6:3 (Definition) Extent=[6:3 - 6:6]
190*67e74705SXin Li// CHECK-source: usrs.m:7:3: EnumConstantDecl=CADABA:7:3 (Definition) Extent=[7:3 - 7:9]
191*67e74705SXin Li// CHECK-source: usrs.m:10:1: EnumDecl=:10:1 (Definition) Extent=[10:1 - 13:2]
192*67e74705SXin Li// CHECK-source: usrs.m:11:3: EnumConstantDecl=FOO:11:3 (Definition) Extent=[11:3 - 11:6]
193*67e74705SXin Li// CHECK-source: usrs.m:12:3: EnumConstantDecl=BAR:12:3 (Definition) Extent=[12:3 - 12:6]
194*67e74705SXin Li// CHECK-source: usrs.m:18:3: TypedefDecl=MyStruct:18:3 (Definition) Extent=[15:1 - 18:11]
195*67e74705SXin Li// CHECK-source: usrs.m:15:9: StructDecl=:15:9 (Definition) Extent=[15:9 - 18:2]
196*67e74705SXin Li// CHECK-source: usrs.m:16:7: FieldDecl=wa:16:7 (Definition) Extent=[16:3 - 16:9]
197*67e74705SXin Li// CHECK-source: usrs.m:17:7: FieldDecl=moo:17:7 (Definition) Extent=[17:3 - 17:10]
198*67e74705SXin Li// CHECK-source: usrs.m:20:6: EnumDecl=Pizza:20:6 (Definition) Extent=[20:1 - 23:2]
199*67e74705SXin Li// CHECK-source: usrs.m:21:3: EnumConstantDecl=CHEESE:21:3 (Definition) Extent=[21:3 - 21:9]
200*67e74705SXin Li// CHECK-source: usrs.m:22:3: EnumConstantDecl=MUSHROOMS:22:3 (Definition) Extent=[22:3 - 22:12]
201*67e74705SXin Li// CHECK-source: usrs.m:25:12: ObjCInterfaceDecl=Foo:25:12 Extent=[25:1 - 32:5]
202*67e74705SXin Li// CHECK-source: usrs.m:26:6: ObjCIvarDecl=x:26:6 (Definition) Extent=[26:3 - 26:7]
203*67e74705SXin Li// CHECK-source: usrs.m:26:3: TypeRef=id:0:0 Extent=[26:3 - 26:5]
204*67e74705SXin Li// CHECK-source: usrs.m:27:6: ObjCIvarDecl=y:27:6 (Definition) Extent=[27:3 - 27:7]
205*67e74705SXin Li// CHECK-source: usrs.m:27:3: TypeRef=id:0:0 Extent=[27:3 - 27:5]
206*67e74705SXin Li// CHECK-source: usrs.m:29:8: ObjCInstanceMethodDecl=godzilla:29:8 Extent=[29:1 - 29:17]
207*67e74705SXin Li// CHECK-source: usrs.m:29:4: TypeRef=id:0:0 Extent=[29:4 - 29:6]
208*67e74705SXin Li// CHECK-source: usrs.m:30:8: ObjCClassMethodDecl=kingkong:30:8 Extent=[30:1 - 30:17]
209*67e74705SXin Li// CHECK-source: usrs.m:30:4: TypeRef=id:0:0 Extent=[30:4 - 30:6]
210*67e74705SXin Li// CHECK-source: usrs.m:31:15: ObjCPropertyDecl=d1:31:15 Extent=[31:1 - 31:17]
211*67e74705SXin Li// CHECK-source: usrs.m:31:15: ObjCInstanceMethodDecl=d1:31:15 Extent=[31:15 - 31:17]
212*67e74705SXin Li// CHECK-source: usrs.m:31:15: ObjCInstanceMethodDecl=setD1::31:15 Extent=[31:15 - 31:17]
213*67e74705SXin Li// CHECK-source: usrs.m:31:15: ParmDecl=d1:31:15 (Definition) Extent=[31:15 - 31:17]
214*67e74705SXin Li// CHECK-source: usrs.m:34:17: ObjCImplementationDecl=Foo:34:17 (Definition) Extent=[34:1 - 45:2]
215*67e74705SXin Li// CHECK-source: usrs.m:35:8: ObjCInstanceMethodDecl=godzilla:35:8 (Definition) Extent=[35:1 - 39:2]
216*67e74705SXin Li// CHECK-source: usrs.m:35:4: TypeRef=id:0:0 Extent=[35:4 - 35:6]
217*67e74705SXin Li// CHECK-source: usrs.m:35:17: CompoundStmt= Extent=[35:17 - 39:2]
218*67e74705SXin Li// CHECK-source: usrs.m:36:3: DeclStmt= Extent=[36:3 - 36:20]
219*67e74705SXin Li// CHECK-source: usrs.m:36:14: VarDecl=a:36:14 (Definition) Extent=[36:3 - 36:19]
220*67e74705SXin Li// CHECK-source: usrs.m:36:18: IntegerLiteral= Extent=[36:18 - 36:19]
221*67e74705SXin Li// CHECK-source: usrs.m:37:3: DeclStmt= Extent=[37:3 - 37:16]
222*67e74705SXin Li// CHECK-source: usrs.m:37:14: VarDecl=z:37:14 Extent=[37:3 - 37:15]
223*67e74705SXin Li// CHECK-source: usrs.m:38:3: ReturnStmt= Extent=[38:3 - 38:11]
224*67e74705SXin Li// CHECK-source: usrs.m:38:10: UnexposedExpr= Extent=[38:10 - 38:11]
225*67e74705SXin Li// CHECK-source: usrs.m:38:10: IntegerLiteral= Extent=[38:10 - 38:11]
226*67e74705SXin Li// CHECK-source: usrs.m:40:8: ObjCClassMethodDecl=kingkong:40:8 (Definition) Extent=[40:1 - 43:2]
227*67e74705SXin Li// CHECK-source: usrs.m:40:4: TypeRef=id:0:0 Extent=[40:4 - 40:6]
228*67e74705SXin Li// CHECK-source: usrs.m:40:17: CompoundStmt= Extent=[40:17 - 43:2]
229*67e74705SXin Li// CHECK-source: usrs.m:41:3: DeclStmt= Extent=[41:3 - 41:17]
230*67e74705SXin Li// CHECK-source: usrs.m:41:7: VarDecl=local_var:41:7 (Definition) Extent=[41:3 - 41:16]
231*67e74705SXin Li// CHECK-source: usrs.m:42:3: ReturnStmt= Extent=[42:3 - 42:11]
232*67e74705SXin Li// CHECK-source: usrs.m:42:10: UnexposedExpr= Extent=[42:10 - 42:11]
233*67e74705SXin Li// CHECK-source: usrs.m:42:10: IntegerLiteral= Extent=[42:10 - 42:11]
234*67e74705SXin Li// CHECK-source: usrs.m:44:13: ObjCSynthesizeDecl=d1:31:15 (Definition) Extent=[44:1 - 44:15]
235*67e74705SXin Li// CHECK-source: usrs.m:47:5: VarDecl=z:47:5 Extent=[47:1 - 47:6]
236*67e74705SXin Li// CHECK-source: usrs.m:49:12: FunctionDecl=local_func:49:12 (Definition) Extent=[49:1 - 49:43]
237*67e74705SXin Li// CHECK-source: usrs.m:49:27: ParmDecl=x:49:27 (Definition) Extent=[49:23 - 49:28]
238*67e74705SXin Li// CHECK-source: usrs.m:49:30: CompoundStmt= Extent=[49:30 - 49:43]
239*67e74705SXin Li// CHECK-source: usrs.m:49:32: ReturnStmt= Extent=[49:32 - 49:40]
240*67e74705SXin Li// CHECK-source: usrs.m:49:39: DeclRefExpr=x:49:27 Extent=[49:39 - 49:40]
241*67e74705SXin Li// CHECK-source: usrs.m:51:12: ObjCInterfaceDecl=CWithExt:51:12 Extent=[51:1 - 53:5]
242*67e74705SXin Li// CHECK-source: usrs.m:52:8: ObjCInstanceMethodDecl=meth1:52:8 Extent=[52:1 - 52:14]
243*67e74705SXin Li// CHECK-source: usrs.m:52:4: TypeRef=id:0:0 Extent=[52:4 - 52:6]
244*67e74705SXin Li// CHECK-source: usrs.m:54:12: ObjCCategoryDecl=:54:12 Extent=[54:1 - 56:5]
245*67e74705SXin Li// CHECK-source: usrs.m:54:12: ObjCClassRef=CWithExt:51:12 Extent=[54:12 - 54:20]
246*67e74705SXin Li// CHECK-source: usrs.m:55:8: ObjCInstanceMethodDecl=meth2:55:8 Extent=[55:1 - 55:14]
247*67e74705SXin Li// CHECK-source: usrs.m:55:4: TypeRef=id:0:0 Extent=[55:4 - 55:6]
248*67e74705SXin Li// CHECK-source: usrs.m:57:12: ObjCCategoryDecl=:57:12 Extent=[57:1 - 59:5]
249*67e74705SXin Li// CHECK-source: usrs.m:57:12: ObjCClassRef=CWithExt:51:12 Extent=[57:12 - 57:20]
250*67e74705SXin Li// CHECK-source: usrs.m:58:8: ObjCInstanceMethodDecl=meth3:58:8 Extent=[58:1 - 58:14]
251*67e74705SXin Li// CHECK-source: usrs.m:58:4: TypeRef=id:0:0 Extent=[58:4 - 58:6]
252*67e74705SXin Li// CHECK-source: usrs.m:60:12: ObjCCategoryDecl=Bar:60:12 Extent=[60:1 - 62:5]
253*67e74705SXin Li// CHECK-source: usrs.m:60:12: ObjCClassRef=CWithExt:51:12 Extent=[60:12 - 60:20]
254*67e74705SXin Li// CHECK-source: usrs.m:61:8: ObjCInstanceMethodDecl=meth4:61:8 Extent=[61:1 - 61:14]
255*67e74705SXin Li// CHECK-source: usrs.m:61:4: TypeRef=id:0:0 Extent=[61:4 - 61:6]
256*67e74705SXin Li// CHECK-source: usrs.m:63:17: ObjCImplementationDecl=CWithExt:63:17 (Definition) Extent=[63:1 - 67:2]
257*67e74705SXin Li// CHECK-source: usrs.m:64:8: ObjCInstanceMethodDecl=meth1:64:8 (Definition) Extent=[64:1 - 64:27]
258*67e74705SXin Li// CHECK-source: usrs.m:64:4: TypeRef=id:0:0 Extent=[64:4 - 64:6]
259*67e74705SXin Li// CHECK-source: usrs.m:64:14: CompoundStmt= Extent=[64:14 - 64:27]
260*67e74705SXin Li// CHECK-source: usrs.m:64:16: ReturnStmt= Extent=[64:16 - 64:24]
261*67e74705SXin Li// CHECK-source: usrs.m:64:23: UnexposedExpr= Extent=[64:23 - 64:24]
262*67e74705SXin Li// CHECK-source: usrs.m:64:23: IntegerLiteral= Extent=[64:23 - 64:24]
263*67e74705SXin Li// CHECK-source: usrs.m:65:8: ObjCInstanceMethodDecl=meth2:65:8 (Definition) Extent=[65:1 - 65:27]
264*67e74705SXin Li// CHECK-source: usrs.m:65:4: TypeRef=id:0:0 Extent=[65:4 - 65:6]
265*67e74705SXin Li// CHECK-source: usrs.m:65:14: CompoundStmt= Extent=[65:14 - 65:27]
266*67e74705SXin Li// CHECK-source: usrs.m:65:16: ReturnStmt= Extent=[65:16 - 65:24]
267*67e74705SXin Li// CHECK-source: usrs.m:65:23: UnexposedExpr= Extent=[65:23 - 65:24]
268*67e74705SXin Li// CHECK-source: usrs.m:65:23: IntegerLiteral= Extent=[65:23 - 65:24]
269*67e74705SXin Li// CHECK-source: usrs.m:66:8: ObjCInstanceMethodDecl=meth3:66:8 (Definition) Extent=[66:1 - 66:27]
270*67e74705SXin Li// CHECK-source: usrs.m:66:4: TypeRef=id:0:0 Extent=[66:4 - 66:6]
271*67e74705SXin Li// CHECK-source: usrs.m:66:14: CompoundStmt= Extent=[66:14 - 66:27]
272*67e74705SXin Li// CHECK-source: usrs.m:66:16: ReturnStmt= Extent=[66:16 - 66:24]
273*67e74705SXin Li// CHECK-source: usrs.m:66:23: UnexposedExpr= Extent=[66:23 - 66:24]
274*67e74705SXin Li// CHECK-source: usrs.m:66:23: IntegerLiteral= Extent=[66:23 - 66:24]
275*67e74705SXin Li// CHECK-source: usrs.m:68:17: ObjCCategoryImplDecl=Bar:68:17 (Definition) Extent=[68:1 - 70:2]
276*67e74705SXin Li// CHECK-source: usrs.m:68:17: ObjCClassRef=CWithExt:51:12 Extent=[68:17 - 68:25]
277*67e74705SXin Li// CHECK-source: usrs.m:69:8: ObjCInstanceMethodDecl=meth4:69:8 (Definition) Extent=[69:1 - 69:27]
278*67e74705SXin Li// CHECK-source: usrs.m:69:4: TypeRef=id:0:0 Extent=[69:4 - 69:6]
279*67e74705SXin Li// CHECK-source: usrs.m:69:14: CompoundStmt= Extent=[69:14 - 69:27]
280*67e74705SXin Li// CHECK-source: usrs.m:69:16: ReturnStmt= Extent=[69:16 - 69:24]
281*67e74705SXin Li// CHECK-source: usrs.m:69:23: UnexposedExpr= Extent=[69:23 - 69:24]
282*67e74705SXin Li// CHECK-source: usrs.m:69:23: IntegerLiteral= Extent=[69:23 - 69:24]
283*67e74705SXin Li// CHECK-source: usrs.m:72:6: FunctionDecl=aux_1:72:6 Extent=[72:1 - 72:26]
284*67e74705SXin Li// CHECK-source: usrs.m:72:15: ParmDecl=:72:15 (Definition) Extent=[72:12 - 72:15]
285*67e74705SXin Li// CHECK-source: usrs.m:72:20: ParmDecl=:72:20 (Definition) Extent=[72:17 - 72:20]
286*67e74705SXin Li// CHECK-source: usrs.m:72:25: ParmDecl=:72:25 (Definition) Extent=[72:22 - 72:25]
287*67e74705SXin Li// CHECK-source: usrs.m:73:5: FunctionDecl=test_multi_declaration:73:5 (Definition) Extent=[73:1 - 77:2]
288*67e74705SXin Li// CHECK-source: usrs.m:73:34: CompoundStmt= Extent=[73:34 - 77:2]
289*67e74705SXin Li// CHECK-source: usrs.m:74:3: DeclStmt= Extent=[74:3 - 74:33]
290*67e74705SXin Li// CHECK-source: usrs.m:74:7: VarDecl=foo:74:7 (Definition) Extent=[74:3 - 74:14]
291*67e74705SXin Li// CHECK-source: usrs.m:74:13: IntegerLiteral= Extent=[74:13 - 74:14]
292*67e74705SXin Li// CHECK-source: usrs.m:74:16: VarDecl=bar:74:16 Extent=[74:16 - 74:23]
293*67e74705SXin Li// CHECK-source: usrs.m:74:22: IntegerLiteral= Extent=[74:22 - 74:23]
294*67e74705SXin Li// CHECK-source: usrs.m:74:25: VarDecl=baz:74:25 Extent=[74:25 - 74:32]
295*67e74705SXin Li// CHECK-source: usrs.m:74:31: IntegerLiteral= Extent=[74:31 - 74:32]
296*67e74705SXin Li// CHECK-source: usrs.m:75:3: CallExpr=aux_1:72:6 Extent=[75:3 - 75:23]
297*67e74705SXin Li// CHECK-source: usrs.m:75:3: UnexposedExpr=aux_1:72:6 Extent=[75:3 - 75:8]
298*67e74705SXin Li// CHECK-source: usrs.m:75:3: DeclRefExpr=aux_1:72:6 Extent=[75:3 - 75:8]
299*67e74705SXin Li// CHECK-source: usrs.m:75:9: DeclRefExpr=foo:74:7 Extent=[75:9 - 75:12]
300*67e74705SXin Li// CHECK-source: usrs.m:75:14: DeclRefExpr=bar:74:16 Extent=[75:14 - 75:17]
301*67e74705SXin Li// CHECK-source: usrs.m:75:19: DeclRefExpr=baz:74:25 Extent=[75:19 - 75:22]
302*67e74705SXin Li// CHECK-source: usrs.m:76:3: ReturnStmt= Extent=[76:3 - 76:11]
303*67e74705SXin Li// CHECK-source: usrs.m:76:10: IntegerLiteral= Extent=[76:10 - 76:11]
304*67e74705SXin Li// CHECK-source: usrs.m:79:11: ObjCProtocolDecl=P1:79:11 (Definition) Extent=[79:1 - 81:5]
305*67e74705SXin Li// CHECK-source: usrs.m:80:9: ObjCInstanceMethodDecl=method:80:9 Extent=[80:1 - 80:16]
306*67e74705SXin Li// CHECK-source: usrs.m:89:7: ObjCInstanceMethodDecl=methodWithFn::89:7 Extent=[89:1 - 89:41]
307*67e74705SXin Li// CHECK-source: usrs.m:89:38: ParmDecl=fn:89:38 (Definition) Extent=[89:21 - 89:40]
308*67e74705SXin Li// CHECK-source: usrs.m:89:35: ParmDecl=p:89:35 (Definition) Extent=[89:30 - 89:36]
309