1*67e74705SXin Li 2*67e74705SXin Li@class Protocol; 3*67e74705SXin Li 4*67e74705SXin Li@protocol Prot 5*67e74705SXin Li@end 6*67e74705SXin Li 7*67e74705SXin Listruct FooS { 8*67e74705SXin Li int x; 9*67e74705SXin Li}; 10*67e74705SXin Li 11*67e74705SXin Livoid foo() { 12*67e74705SXin Li Protocol *p = @protocol(Prot); 13*67e74705SXin Li @encode(struct FooS); 14*67e74705SXin Li} 15*67e74705SXin Li 16*67e74705SXin Li@interface I 17*67e74705SXin Li+(void)clsMeth; 18*67e74705SXin Li@end 19*67e74705SXin Li 20*67e74705SXin Livoid foo2() { 21*67e74705SXin Li [I clsMeth]; 22*67e74705SXin Li} 23*67e74705SXin Li 24*67e74705SXin Li@protocol ForwardProt; 25*67e74705SXin Li 26*67e74705SXin Li// RUN: c-index-test -index-file %s | FileCheck %s 27*67e74705SXin Li// CHECK: [indexEntityReference]: kind: objc-protocol | name: Prot | {{.*}} | loc: 12:27 28*67e74705SXin Li// CHECK: [indexEntityReference]: kind: struct | name: FooS | {{.*}} | loc: 13:18 29*67e74705SXin Li// CHECK: [indexEntityReference]: kind: objc-class | name: I | {{.*}} | loc: 21:4 30*67e74705SXin Li 31*67e74705SXin Li// CHECK: [indexDeclaration]: kind: objc-protocol | name: ForwardProt | {{.*}} | loc: 24:11 32*67e74705SXin Li// CHECK-NEXT: <ObjCContainerInfo>: kind: forward-ref 33