Home | History | Annotate | Download | only in Index
      1 // RUN: c-index-test -test-load-source-usrs all %s | FileCheck %s
      2 
      3 static inline int my_helper(int x, int y) { return x + y; }
      4 
      5 enum {
      6   ABA,
      7   CADABA
      8 };
      9 
     10 enum {
     11   FOO,
     12   BAR
     13 };
     14 
     15 typedef struct {
     16   int wa;
     17   int moo;
     18 } MyStruct;
     19 
     20 enum 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 {
     41   int local_var;
     42   return 0;
     43 }
     44 @synthesize d1;
     45 @end
     46 
     47 int z;
     48 
     49 static int local_func(int x) { return x; }
     50 
     51 @interface CWithExt
     52 - (id) meth1;
     53 @end
     54 @interface CWithExt ()
     55 - (id) meth2;
     56 @end
     57 @interface CWithExt ()
     58 - (id) meth3;
     59 @end
     60 @interface CWithExt (Bar)
     61 - (id) meth4;
     62 @end
     63 @implementation CWithExt
     64 - (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; }
     70 @end
     71 
     72 void aux_1(int, int, int);
     73 int test_multi_declaration(void) {
     74   int foo = 1, bar = 2, baz = 3;
     75   aux_1(foo, bar, baz);
     76   return 0;
     77 }
     78 
     79 @protocol P1
     80 - (void)method;
     81 @end
     82 
     83 // CHECK: usrs.m c:usrs.m@67@F@my_helper Extent=[3:1 - 3:60]
     84 // CHECK: usrs.m c:usrs.m@95@F@my_helper@x Extent=[3:29 - 3:34]
     85 // CHECK: usrs.m c:usrs.m@102@F@my_helper@y Extent=[3:36 - 3:41]
     86 // CHECK: usrs.m c:usrs.m@128@Ea Extent=[5:1 - 8:2]
     87 // CHECK: usrs.m c:usrs.m@128@Ea@ABA Extent=[6:3 - 6:6]
     88 // CHECK: usrs.m c:usrs.m@128@Ea@CADABA Extent=[7:3 - 7:9]
     89 // CHECK: usrs.m c:usrs.m@155@Ea Extent=[10:1 - 13:2]
     90 // CHECK: usrs.m c:usrs.m@155@Ea@FOO Extent=[11:3 - 11:6]
     91 // CHECK: usrs.m c:usrs.m@155@Ea@BAR Extent=[12:3 - 12:6]
     92 // CHECK: usrs.m c:@SA@MyStruct Extent=[15:9 - 18:2]
     93 // CHECK: usrs.m c:@SA@MyStruct@FI@wa Extent=[16:3 - 16:9]
     94 // CHECK: usrs.m c:@SA@MyStruct@FI@moo Extent=[17:3 - 17:10]
     95 // CHECK: usrs.m c:usrs.m@179@T@MyStruct Extent=[15:1 - 18:11]
     96 // CHECK: usrs.m c:@E@Pizza Extent=[20:1 - 23:2]
     97 // CHECK: usrs.m c:@E@Pizza@CHEESE Extent=[21:3 - 21:9]
     98 // CHECK: usrs.m c:@E@Pizza@MUSHROOMS Extent=[22:3 - 22:12]
     99 // CHECK: usrs.m c:objc(cs)Foo Extent=[25:1 - 32:5]
    100 // CHECK: usrs.m c:objc(cs)Foo@x Extent=[26:3 - 26:7]
    101 // CHECK: usrs.m c:objc(cs)Foo@y Extent=[27:3 - 27:7]
    102 // CHECK: usrs.m c:objc(cs)Foo(im)godzilla Extent=[29:1 - 29:17]
    103 // CHECK: usrs.m c:objc(cs)Foo(cm)kingkong Extent=[30:1 - 30:17]
    104 // CHECK: usrs.m c:objc(cs)Foo(py)d1 Extent=[31:1 - 31:17]
    105 // CHECK: usrs.m c:objc(cs)Foo(im)d1 Extent=[31:15 - 31:17]
    106 // CHECK: usrs.m c:objc(cs)Foo(im)setD1: Extent=[31:15 - 31:17]
    107 // CHECK: usrs.m c:usrs.m@352objc(cs)Foo(im)setD1:@d1 Extent=[31:15 - 31:17]
    108 // CHECK: usrs.m c:objc(cs)Foo Extent=[34:1 - 45:2]
    109 // CHECK: usrs.m c:objc(cs)Foo(im)godzilla Extent=[35:1 - 39:2]
    110 // CHECK: usrs.m c:usrs.m@402objc(cs)Foo(im)godzilla@a Extent=[36:3 - 36:19]
    111 // CHECK: usrs.m c:objc(cs)Foo(im)godzilla@z Extent=[37:3 - 37:15]
    112 // CHECK: usrs.m c:objc(cs)Foo(cm)kingkong Extent=[40:1 - 43:2]
    113 // CHECK: usrs.m c:usrs.m@470objc(cs)Foo(cm)kingkong@local_var Extent=[41:3 - 41:16]
    114 // CHECK: usrs.m c:objc(cs)Foo@d1 Extent=[44:13 - 44:15]
    115 // CHECK: usrs.m c:objc(cs)Foo(py)d1 Extent=[44:1 - 44:15]
    116 // CHECK: usrs.m c:@z Extent=[47:1 - 47:6]
    117 // CHECK: usrs.m c:usrs.m@529@F@local_func Extent=[49:1 - 49:43]
    118 // CHECK: usrs.m c:usrs.m@551@F@local_func@x Extent=[49:23 - 49:28]
    119 // CHECK: usrs.m c:objc(cs)CWithExt Extent=[51:1 - 53:5]
    120 // CHECK: usrs.m c:objc(cs)CWithExt(im)meth1 Extent=[52:1 - 52:14]
    121 // CHECK: usrs.m c:objc(ext)CWithExt (a] usrs.m@612 Extent=[54:1 - 56:5]
    122 // CHECK: usrs.m c:objc(cs)CWithExt(im)meth2 Extent=[55:1 - 55:14]
    123 // CHECK: usrs.m c:objc(ext)CWithExt (a] usrs.m@654 Extent=[57:1 - 59:5]
    124 // CHECK: usrs.m c:objc(cs)CWithExt(im)meth3 Extent=[58:1 - 58:14]
    125 // CHECK: usrs.m c:objc(cy)CWithExt@Bar Extent=[60:1 - 62:5]
    126 // CHECK: usrs.m c:objc(cs)CWithExt(im)meth4 Extent=[61:1 - 61:14]
    127 // CHECK: usrs.m c:objc(cs)CWithExt Extent=[63:1 - 67:2]
    128 // CHECK: usrs.m c:objc(cs)CWithExt(im)meth1 Extent=[64:1 - 64:27]
    129 // CHECK: usrs.m c:objc(cs)CWithExt(im)meth2 Extent=[65:1 - 65:27]
    130 // CHECK: usrs.m c:objc(cs)CWithExt(im)meth3 Extent=[66:1 - 66:27]
    131 // CHECK: usrs.m c:objc(cy)CWithExt@Bar Extent=[68:1 - 70:2]
    132 // CHECK: usrs.m c:objc(cs)CWithExt(im)meth4 Extent=[69:1 - 69:27]
    133 // CHECK: usrs.m c:@F@aux_1 Extent=[72:1 - 72:26]
    134 // CHECK: usrs.m c:@F@test_multi_declaration Extent=[73:1 - 77:2]
    135 // CHECK: usrs.m c:usrs.m@980@F@test_multi_declaration@foo Extent=[74:3 - 74:14]
    136 // CHECK: usrs.m c:usrs.m@980@F@test_multi_declaration@bar Extent=[74:16 - 74:23]
    137 // CHECK: usrs.m c:usrs.m@980@F@test_multi_declaration@baz Extent=[74:25 - 74:32]
    138 // CHECK: usrs.m c:objc(pl)P1 Extent=[79:1 - 81:5]
    139 // CHECK: usrs.m c:objc(pl)P1(im)method Extent=[80:1 - 80:16]
    140 
    141 // RUN: c-index-test -test-load-source all %s | FileCheck -check-prefix=CHECK-source %s
    142 // CHECK-source: usrs.m:3:19: FunctionDecl=my_helper:3:19 (Definition) Extent=[3:1 - 3:60]
    143 // CHECK-source: usrs.m:3:33: ParmDecl=x:3:33 (Definition) Extent=[3:29 - 3:34]
    144 // CHECK-source: usrs.m:3:40: ParmDecl=y:3:40 (Definition) Extent=[3:36 - 3:41]
    145 // CHECK-source: usrs.m:3:43: UnexposedStmt= Extent=[3:43 - 3:60]
    146 // CHECK-source: usrs.m:3:45: UnexposedStmt= Extent=[3:45 - 3:57]
    147 // CHECK-source: usrs.m:3:52: UnexposedExpr= Extent=[3:52 - 3:57]
    148 // CHECK-source: usrs.m:3:52: DeclRefExpr=x:3:33 Extent=[3:52 - 3:53]
    149 // CHECK-source: usrs.m:3:56: DeclRefExpr=y:3:40 Extent=[3:56 - 3:57]
    150 // CHECK-source: usrs.m:5:1: EnumDecl=:5:1 (Definition) Extent=[5:1 - 8:2]
    151 // CHECK-source: usrs.m:6:3: EnumConstantDecl=ABA:6:3 (Definition) Extent=[6:3 - 6:6]
    152 // CHECK-source: usrs.m:7:3: EnumConstantDecl=CADABA:7:3 (Definition) Extent=[7:3 - 7:9]
    153 // CHECK-source: usrs.m:10:1: EnumDecl=:10:1 (Definition) Extent=[10:1 - 13:2]
    154 // CHECK-source: usrs.m:11:3: EnumConstantDecl=FOO:11:3 (Definition) Extent=[11:3 - 11:6]
    155 // CHECK-source: usrs.m:12:3: EnumConstantDecl=BAR:12:3 (Definition) Extent=[12:3 - 12:6]
    156 // CHECK-source: usrs.m:15:9: StructDecl=:15:9 (Definition) Extent=[15:9 - 18:2]
    157 // CHECK-source: usrs.m:16:7: FieldDecl=wa:16:7 (Definition) Extent=[16:3 - 16:9]
    158 // CHECK-source: usrs.m:17:7: FieldDecl=moo:17:7 (Definition) Extent=[17:3 - 17:10]
    159 // CHECK-source: usrs.m:18:3: TypedefDecl=MyStruct:18:3 (Definition) Extent=[15:1 - 18:11]
    160 // CHECK-source: usrs.m:15:9: TypeRef=MyStruct:15:9 Extent=[15:9 - 15:15]
    161 // CHECK-source: usrs.m:20:6: EnumDecl=Pizza:20:6 (Definition) Extent=[20:1 - 23:2]
    162 // CHECK-source: usrs.m:21:3: EnumConstantDecl=CHEESE:21:3 (Definition) Extent=[21:3 - 21:9]
    163 // CHECK-source: usrs.m:22:3: EnumConstantDecl=MUSHROOMS:22:3 (Definition) Extent=[22:3 - 22:12]
    164 // CHECK-source: usrs.m:25:12: ObjCInterfaceDecl=Foo:25:12 Extent=[25:1 - 32:5]
    165 // CHECK-source: usrs.m:26:6: ObjCIvarDecl=x:26:6 (Definition) Extent=[26:3 - 26:7]
    166 // CHECK-source: usrs.m:26:3: TypeRef=id:0:0 Extent=[26:3 - 26:5]
    167 // CHECK-source: usrs.m:27:6: ObjCIvarDecl=y:27:6 (Definition) Extent=[27:3 - 27:7]
    168 // CHECK-source: usrs.m:27:3: TypeRef=id:0:0 Extent=[27:3 - 27:5]
    169 // CHECK-source: usrs.m:29:1: ObjCInstanceMethodDecl=godzilla:29:1 Extent=[29:1 - 29:17]
    170 // CHECK-source: usrs.m:29:4: TypeRef=id:0:0 Extent=[29:4 - 29:6]
    171 // CHECK-source: usrs.m:30:1: ObjCClassMethodDecl=kingkong:30:1 Extent=[30:1 - 30:17]
    172 // CHECK-source: usrs.m:30:4: TypeRef=id:0:0 Extent=[30:4 - 30:6]
    173 // CHECK-source: usrs.m:31:15: ObjCPropertyDecl=d1:31:15 Extent=[31:1 - 31:17]
    174 // CHECK-source: usrs.m:31:15: ObjCInstanceMethodDecl=d1:31:15 Extent=[31:15 - 31:17]
    175 // CHECK-source: usrs.m:31:15: ObjCInstanceMethodDecl=setD1::31:15 Extent=[31:15 - 31:17]
    176 // CHECK-source: usrs.m:31:15: ParmDecl=d1:31:15 (Definition) Extent=[31:15 - 31:17]
    177 // CHECK-source: usrs.m:34:1: ObjCImplementationDecl=Foo:34:1 (Definition) Extent=[34:1 - 45:2]
    178 // CHECK-source: usrs.m:35:1: ObjCInstanceMethodDecl=godzilla:35:1 (Definition) [Overrides @29:1] Extent=[35:1 - 39:2]
    179 // CHECK-source: usrs.m:35:4: TypeRef=id:0:0 Extent=[35:4 - 35:6]
    180 // CHECK-source: usrs.m:35:17: UnexposedStmt= Extent=[35:17 - 39:2]
    181 // CHECK-source: usrs.m:36:3: UnexposedStmt= Extent=[36:3 - 36:20]
    182 // CHECK-source: usrs.m:36:14: VarDecl=a:36:14 (Definition) Extent=[36:3 - 36:19]
    183 // CHECK-source: usrs.m:36:18: UnexposedExpr= Extent=[36:18 - 36:19]
    184 // CHECK-source: usrs.m:37:3: UnexposedStmt= Extent=[37:3 - 37:16]
    185 // CHECK-source: usrs.m:37:14: VarDecl=z:37:14 Extent=[37:3 - 37:15]
    186 // CHECK-source: usrs.m:38:3: UnexposedStmt= Extent=[38:3 - 38:11]
    187 // CHECK-source: usrs.m:38:10: UnexposedExpr= Extent=[38:10 - 38:11]
    188 // CHECK-source: usrs.m:38:10: UnexposedExpr= Extent=[38:10 - 38:11]
    189 // CHECK-source: usrs.m:40:1: ObjCClassMethodDecl=kingkong:40:1 (Definition) [Overrides @30:1] Extent=[40:1 - 43:2]
    190 // CHECK-source: usrs.m:40:4: TypeRef=id:0:0 Extent=[40:4 - 40:6]
    191 // CHECK-source: usrs.m:40:17: UnexposedStmt= Extent=[40:17 - 43:2]
    192 // CHECK-source: usrs.m:41:3: UnexposedStmt= Extent=[41:3 - 41:17]
    193 // CHECK-source: usrs.m:41:7: VarDecl=local_var:41:7 (Definition) Extent=[41:3 - 41:16]
    194 // CHECK-source: usrs.m:42:3: UnexposedStmt= Extent=[42:3 - 42:11]
    195 // CHECK-source: usrs.m:42:10: UnexposedExpr= Extent=[42:10 - 42:11]
    196 // CHECK-source: usrs.m:42:10: UnexposedExpr= Extent=[42:10 - 42:11]
    197 // CHECK-source: usrs.m:44:13: ObjCIvarDecl=d1:44:13 (Definition) Extent=[44:13 - 44:15]
    198 // CHECK-source: usrs.m:44:13: ObjCSynthesizeDecl=d1:31:15 (Definition) Extent=[44:1 - 44:15]
    199 // CHECK-source: usrs.m:47:5: VarDecl=z:47:5 Extent=[47:1 - 47:6]
    200 // CHECK-source: usrs.m:49:12: FunctionDecl=local_func:49:12 (Definition) Extent=[49:1 - 49:43]
    201 // CHECK-source: usrs.m:49:27: ParmDecl=x:49:27 (Definition) Extent=[49:23 - 49:28]
    202 // CHECK-source: usrs.m:49:30: UnexposedStmt= Extent=[49:30 - 49:43]
    203 // CHECK-source: usrs.m:49:32: UnexposedStmt= Extent=[49:32 - 49:40]
    204 // CHECK-source: usrs.m:49:39: DeclRefExpr=x:49:27 Extent=[49:39 - 49:40]
    205 // CHECK-source: usrs.m:51:12: ObjCInterfaceDecl=CWithExt:51:12 Extent=[51:1 - 53:5]
    206 // CHECK-source: usrs.m:52:1: ObjCInstanceMethodDecl=meth1:52:1 Extent=[52:1 - 52:14]
    207 // CHECK-source: usrs.m:52:4: TypeRef=id:0:0 Extent=[52:4 - 52:6]
    208 // CHECK-source: usrs.m:54:12: ObjCCategoryDecl=:54:12 Extent=[54:1 - 56:5]
    209 // CHECK-source: usrs.m:54:12: ObjCClassRef=CWithExt:51:12 Extent=[54:12 - 54:20]
    210 // CHECK-source: usrs.m:55:1: ObjCInstanceMethodDecl=meth2:55:1 Extent=[55:1 - 55:14]
    211 // CHECK-source: usrs.m:55:4: TypeRef=id:0:0 Extent=[55:4 - 55:6]
    212 // CHECK-source: usrs.m:57:12: ObjCCategoryDecl=:57:12 Extent=[57:1 - 59:5]
    213 // CHECK-source: usrs.m:57:12: ObjCClassRef=CWithExt:51:12 Extent=[57:12 - 57:20]
    214 // CHECK-source: usrs.m:58:1: ObjCInstanceMethodDecl=meth3:58:1 Extent=[58:1 - 58:14]
    215 // CHECK-source: usrs.m:58:4: TypeRef=id:0:0 Extent=[58:4 - 58:6]
    216 // CHECK-source: usrs.m:60:12: ObjCCategoryDecl=Bar:60:12 Extent=[60:1 - 62:5]
    217 // CHECK-source: usrs.m:60:12: ObjCClassRef=CWithExt:51:12 Extent=[60:12 - 60:20]
    218 // CHECK-source: usrs.m:61:1: ObjCInstanceMethodDecl=meth4:61:1 Extent=[61:1 - 61:14]
    219 // CHECK-source: usrs.m:61:4: TypeRef=id:0:0 Extent=[61:4 - 61:6]
    220 // CHECK-source: usrs.m:63:1: ObjCImplementationDecl=CWithExt:63:1 (Definition) Extent=[63:1 - 67:2]
    221 // CHECK-source: usrs.m:64:1: ObjCInstanceMethodDecl=meth1:64:1 (Definition) [Overrides @52:1] Extent=[64:1 - 64:27]
    222 // CHECK-source: usrs.m:64:4: TypeRef=id:0:0 Extent=[64:4 - 64:6]
    223 // CHECK-source: usrs.m:64:14: UnexposedStmt= Extent=[64:14 - 64:27]
    224 // CHECK-source: usrs.m:64:16: UnexposedStmt= Extent=[64:16 - 64:24]
    225 // CHECK-source: usrs.m:64:23: UnexposedExpr= Extent=[64:23 - 64:24]
    226 // CHECK-source: usrs.m:64:23: UnexposedExpr= Extent=[64:23 - 64:24]
    227 // CHECK-source: usrs.m:65:1: ObjCInstanceMethodDecl=meth2:65:1 (Definition) [Overrides @55:1] Extent=[65:1 - 65:27]
    228 // CHECK-source: usrs.m:65:4: TypeRef=id:0:0 Extent=[65:4 - 65:6]
    229 // CHECK-source: usrs.m:65:14: UnexposedStmt= Extent=[65:14 - 65:27]
    230 // CHECK-source: usrs.m:65:16: UnexposedStmt= Extent=[65:16 - 65:24]
    231 // CHECK-source: usrs.m:65:23: UnexposedExpr= Extent=[65:23 - 65:24]
    232 // CHECK-source: usrs.m:65:23: UnexposedExpr= Extent=[65:23 - 65:24]
    233 // CHECK-source: usrs.m:66:1: ObjCInstanceMethodDecl=meth3:66:1 (Definition) [Overrides @58:1] Extent=[66:1 - 66:27]
    234 // CHECK-source: usrs.m:66:4: TypeRef=id:0:0 Extent=[66:4 - 66:6]
    235 // CHECK-source: usrs.m:66:14: UnexposedStmt= Extent=[66:14 - 66:27]
    236 // CHECK-source: usrs.m:66:16: UnexposedStmt= Extent=[66:16 - 66:24]
    237 // CHECK-source: usrs.m:66:23: UnexposedExpr= Extent=[66:23 - 66:24]
    238 // CHECK-source: usrs.m:66:23: UnexposedExpr= Extent=[66:23 - 66:24]
    239 // CHECK-source: usrs.m:68:1: ObjCCategoryImplDecl=Bar:68:1 (Definition) Extent=[68:1 - 70:2]
    240 // CHECK-source: usrs.m:68:1: ObjCClassRef=CWithExt:51:12 Extent=[68:1 - 68:2]
    241 // CHECK-source: usrs.m:69:1: ObjCInstanceMethodDecl=meth4:69:1 (Definition) [Overrides @61:1] Extent=[69:1 - 69:27]
    242 // CHECK-source: usrs.m:69:4: TypeRef=id:0:0 Extent=[69:4 - 69:6]
    243 // CHECK-source: usrs.m:69:14: UnexposedStmt= Extent=[69:14 - 69:27]
    244 // CHECK-source: usrs.m:69:16: UnexposedStmt= Extent=[69:16 - 69:24]
    245 // CHECK-source: usrs.m:69:23: UnexposedExpr= Extent=[69:23 - 69:24]
    246 // CHECK-source: usrs.m:69:23: UnexposedExpr= Extent=[69:23 - 69:24]
    247 // CHECK-source: usrs.m:72:6: FunctionDecl=aux_1:72:6 Extent=[72:1 - 72:26]
    248 // CHECK-source: usrs.m:72:15: ParmDecl=:72:15 (Definition) Extent=[72:12 - 72:16]
    249 // CHECK-source: usrs.m:72:20: ParmDecl=:72:20 (Definition) Extent=[72:17 - 72:21]
    250 // CHECK-source: usrs.m:72:25: ParmDecl=:72:25 (Definition) Extent=[72:22 - 72:26]
    251 // CHECK-source: usrs.m:73:5: FunctionDecl=test_multi_declaration:73:5 (Definition) Extent=[73:1 - 77:2]
    252 // CHECK-source: usrs.m:73:34: UnexposedStmt= Extent=[73:34 - 77:2]
    253 // CHECK-source: usrs.m:74:3: UnexposedStmt= Extent=[74:3 - 74:33]
    254 // CHECK-source: usrs.m:74:7: VarDecl=foo:74:7 (Definition) Extent=[74:3 - 74:14]
    255 // CHECK-source: usrs.m:74:13: UnexposedExpr= Extent=[74:13 - 74:14]
    256 // CHECK-source: usrs.m:74:16: VarDecl=bar:74:16 Extent=[74:16 - 74:23]
    257 // CHECK-source: usrs.m:74:22: UnexposedExpr= Extent=[74:22 - 74:23]
    258 // CHECK-source: usrs.m:74:25: VarDecl=baz:74:25 Extent=[74:25 - 74:32]
    259 // CHECK-source: usrs.m:74:31: UnexposedExpr= Extent=[74:31 - 74:32]
    260 // CHECK-source: usrs.m:75:3: CallExpr=aux_1:72:6 Extent=[75:3 - 75:23]
    261 // CHECK-source: usrs.m:75:3: UnexposedExpr=aux_1:72:6 Extent=[75:3 - 75:8]
    262 // CHECK-source: usrs.m:75:3: DeclRefExpr=aux_1:72:6 Extent=[75:3 - 75:8]
    263 // CHECK-source: usrs.m:75:9: DeclRefExpr=foo:74:7 Extent=[75:9 - 75:12]
    264 // CHECK-source: usrs.m:75:14: DeclRefExpr=bar:74:16 Extent=[75:14 - 75:17]
    265 // CHECK-source: usrs.m:75:19: DeclRefExpr=baz:74:25 Extent=[75:19 - 75:22]
    266 // CHECK-source: usrs.m:76:3: UnexposedStmt= Extent=[76:3 - 76:11]
    267 // CHECK-source: usrs.m:76:10: UnexposedExpr= Extent=[76:10 - 76:11]
    268 // CHECK-source: usrs.m:79:1: ObjCProtocolDecl=P1:79:1 (Definition) Extent=[79:1 - 81:5]
    269 // CHECK-source: usrs.m:80:1: ObjCInstanceMethodDecl=method:80:1 Extent=[80:1 - 80:16]
    270 
    271