blob: 4b3de5c480ab610a5b604cbbe7d151d26915328c [file] [log] [blame]
Ted Kremenek6d159c12010-04-20 23:15:40 +00001// RUN: c-index-test -test-load-source-usrs all %s | FileCheck %s
2
Ted Kremenek3b9ad932010-04-29 17:43:29 +00003static inline int my_helper(int x, int y) { return x + y; }
4
Ted Kremenek6d159c12010-04-20 23:15:40 +00005enum {
6 ABA,
7 CADABA
8};
9
10enum {
11 FOO,
12 BAR
13};
14
15typedef struct {
16 int wa;
17 int moo;
18} MyStruct;
19
20enum Pizza {
21 CHEESE,
22 MUSHROOMS
23};
24
25@interface Foo {
26 id x;
27 id y;
28}
29- (id) godzilla;
30+ (id) kingkong;
31@property int d1;
32@end
33
34@implementation Foo
35- (id) godzilla {
36 static int a = 0;
37 extern int z;
38 return 0;
39}
40+ (id) kingkong {
Ted Kremenek3b9ad932010-04-29 17:43:29 +000041 int local_var;
Ted Kremenek6d159c12010-04-20 23:15:40 +000042 return 0;
43}
44@synthesize d1;
45@end
46
47int z;
48
Ted Kremenek3b9ad932010-04-29 17:43:29 +000049static int local_func(int x) { return x; }
50
Ted Kremenek7fe8e2d2010-06-23 18:10:30 +000051@interface CWithExt
Ted Kremenekcc7f2152010-08-24 23:13:41 +000052- (id) meth1;
Ted Kremenek7fe8e2d2010-06-23 18:10:30 +000053@end
54@interface CWithExt ()
Ted Kremenekcc7f2152010-08-24 23:13:41 +000055- (id) meth2;
Ted Kremenek7fe8e2d2010-06-23 18:10:30 +000056@end
57@interface CWithExt ()
Ted Kremenekcc7f2152010-08-24 23:13:41 +000058- (id) meth3;
59@end
60@interface CWithExt (Bar)
61- (id) meth4;
Ted Kremenek7fe8e2d2010-06-23 18:10:30 +000062@end
63@implementation CWithExt
Ted Kremenekcc7f2152010-08-24 23:13:41 +000064- (id) meth1 { return 0; }
65- (id) meth2 { return 0; }
66- (id) meth3 { return 0; }
67@end
68@implementation CWithExt (Bar)
69- (id) meth4 { return 0; }
Ted Kremenek7fe8e2d2010-06-23 18:10:30 +000070@end
71
Ted Kremenek1eb888e2010-07-22 11:14:15 +000072// CHECK: usrs.m c:usrs.m@85@F@my_helper Extent=[3:19 - 3:60]
73// CHECK: usrs.m c:usrs.m@95@F@my_helper@x Extent=[3:29 - 3:34]
74// CHECK: usrs.m c:usrs.m@102@F@my_helper@y Extent=[3:36 - 3:41]
75// CHECK: usrs.m c:usrs.m@128@Ea Extent=[5:1 - 8:2]
76// CHECK: usrs.m c:usrs.m@128@Ea@ABA Extent=[6:3 - 6:6]
77// CHECK: usrs.m c:usrs.m@128@Ea@CADABA Extent=[7:3 - 7:9]
78// CHECK: usrs.m c:usrs.m@155@Ea Extent=[10:1 - 13:2]
79// CHECK: usrs.m c:usrs.m@155@Ea@FOO Extent=[11:3 - 11:6]
80// CHECK: usrs.m c:usrs.m@155@Ea@BAR Extent=[12:3 - 12:6]
Ted Kremenek3b9ad932010-04-29 17:43:29 +000081// CHECK: usrs.m c:@SA@MyStruct Extent=[15:9 - 18:2]
82// CHECK: usrs.m c:@SA@MyStruct@FI@wa Extent=[16:7 - 16:9]
83// CHECK: usrs.m c:@SA@MyStruct@FI@moo Extent=[17:7 - 17:10]
Ted Kremenek1eb888e2010-07-22 11:14:15 +000084// CHECK: usrs.m c:usrs.m@219@T@MyStruct Extent=[18:3 - 18:11]
Ted Kremenek3b9ad932010-04-29 17:43:29 +000085// CHECK: usrs.m c:@E@Pizza Extent=[20:1 - 23:2]
86// CHECK: usrs.m c:@E@Pizza@CHEESE Extent=[21:3 - 21:9]
87// CHECK: usrs.m c:@E@Pizza@MUSHROOMS Extent=[22:3 - 22:12]
88// CHECK: usrs.m c:objc(cs)Foo Extent=[25:1 - 32:5]
89// CHECK: usrs.m c:objc(cs)Foo@x Extent=[26:6 - 26:7]
90// CHECK: usrs.m c:objc(cs)Foo@y Extent=[27:6 - 27:7]
91// CHECK: usrs.m c:objc(cs)Foo(py)d1 Extent=[31:15 - 31:17]
92// CHECK: usrs.m c:objc(cs)Foo(im)godzilla Extent=[29:1 - 29:17]
93// CHECK: usrs.m c:objc(cs)Foo(cm)kingkong Extent=[30:1 - 30:17]
94// CHECK: usrs.m c:objc(cs)Foo(im)d1 Extent=[31:15 - 31:17]
95// CHECK: usrs.m c:objc(cs)Foo(im)setD1: Extent=[31:15 - 31:17]
Ted Kremenek1eb888e2010-07-22 11:14:15 +000096// CHECK: usrs.m c:usrs.m@352objc(cs)Foo(im)setD1:@d1 Extent=[31:15 - 31:17]
Ted Kremenek3b9ad932010-04-29 17:43:29 +000097// CHECK: usrs.m c:objc(cs)Foo Extent=[34:1 - 45:2]
98// CHECK: usrs.m c:objc(cs)Foo(im)godzilla Extent=[35:1 - 39:2]
Ted Kremenek1eb888e2010-07-22 11:14:15 +000099// CHECK: usrs.m c:usrs.m@409objc(cs)Foo(im)godzilla@a Extent=[36:10 - 36:19]
Ted Kremenek0b4b46e2010-05-06 23:38:28 +0000100// CHECK: usrs.m c:objc(cs)Foo(im)godzilla@z Extent=[37:10 - 37:15]
Ted Kremenek3b9ad932010-04-29 17:43:29 +0000101// CHECK: usrs.m c:objc(cs)Foo(cm)kingkong Extent=[40:1 - 43:2]
Ted Kremenek1eb888e2010-07-22 11:14:15 +0000102// CHECK: usrs.m c:usrs.m@470objc(cs)Foo(cm)kingkong@local_var Extent=[41:3 - 41:16]
Ted Kremenek3b9ad932010-04-29 17:43:29 +0000103// CHECK: usrs.m c:objc(cs)Foo@d1 Extent=[44:13 - 44:15]
104// CHECK: usrs.m c:objc(cs)Foo(py)d1 Extent=[44:1 - 44:15]
105// CHECK: usrs.m c:@z Extent=[47:1 - 47:6]
Ted Kremenek1eb888e2010-07-22 11:14:15 +0000106// CHECK: usrs.m c:usrs.m@540@F@local_func Extent=[49:12 - 49:43]
107// CHECK: usrs.m c:usrs.m@551@F@local_func@x Extent=[49:23 - 49:28]
Ted Kremenekcc7f2152010-08-24 23:13:41 +0000108// CHECK: usrs.m c:objc(cs)CWithExt Extent=[51:1 - 53:5]
109// CHECK: usrs.m c:objc(cs)CWithExt(im)meth1 Extent=[52:1 - 52:14]
110// CHECK: usrs.m c:objc(ext)CWithExt@usrs.m@612 Extent=[54:1 - 56:5]
111// CHECK: usrs.m c:objc(cs)CWithExt(im)meth2 Extent=[55:1 - 55:14]
112// CHECK: usrs.m c:objc(ext)CWithExt@usrs.m@654 Extent=[57:1 - 59:5]
113// CHECK: usrs.m c:objc(cs)CWithExt(im)meth3 Extent=[58:1 - 58:14]
114// CHECK: usrs.m c:objc(cy)CWithExt@Bar Extent=[60:1 - 62:5]
115// CHECK: usrs.m c:objc(cy)CWithExt@Bar(im)meth4 Extent=[61:1 - 61:14]
116// CHECK: usrs.m c:objc(cs)CWithExt Extent=[63:1 - 67:2]
117// CHECK: usrs.m c:objc(cs)CWithExt(im)meth1 Extent=[64:1 - 64:27]
118// CHECK: usrs.m c:objc(cs)CWithExt(im)meth2 Extent=[65:1 - 65:27]
119// CHECK: usrs.m c:objc(cs)CWithExt(im)meth3 Extent=[66:1 - 66:27]
120// CHECK: usrs.m c:objc(cy)CWithExt@Bar Extent=[68:1 - 70:2]
121// CHECK: usrs.m c:objc(cy)CWithExt@Bar(im)meth4 Extent=[69:1 - 69:27]
Ted Kremenek1eb888e2010-07-22 11:14:15 +0000122