1b15def22SArgyrios Kyrtzidis#ifndef HEADER 2b15def22SArgyrios Kyrtzidis#define HEADER 3b15def22SArgyrios Kyrtzidis 4b15def22SArgyrios Kyrtzidis@interface I(cat) 5b15def22SArgyrios Kyrtzidis-(void)meth; 6b15def22SArgyrios Kyrtzidis@end 7b15def22SArgyrios Kyrtzidis 8b15def22SArgyrios Kyrtzidis@interface I2 9b15def22SArgyrios Kyrtzidis-(void)meth; 10b15def22SArgyrios Kyrtzidis@end 11b15def22SArgyrios Kyrtzidis 12*acfbbd77SArgyrios Kyrtzidisstruct FFF1 13*acfbbd77SArgyrios Kyrtzidisextern I2 *somevar1; 14*acfbbd77SArgyrios Kyrtzidis 15*acfbbd77SArgyrios Kyrtzidisenum FFF2 16*acfbbd77SArgyrios Kyrtzidisextern I2 *somevar2; 17*acfbbd77SArgyrios Kyrtzidis 18b15def22SArgyrios Kyrtzidis#else 19b15def22SArgyrios Kyrtzidis 20b15def22SArgyrios Kyrtzidisvoid foo(I2 *i) { 21b15def22SArgyrios Kyrtzidis [i meth]; 22b15def22SArgyrios Kyrtzidis} 23b15def22SArgyrios Kyrtzidis 24b15def22SArgyrios Kyrtzidis#endif 25b15def22SArgyrios Kyrtzidis 26b15def22SArgyrios Kyrtzidis// RUN: c-index-test -write-pch %t.h.pch %s -Xclang -detailed-preprocessing-record 27b15def22SArgyrios Kyrtzidis// RUN: c-index-test -test-load-source local %s -include %t.h -Xclang -detailed-preprocessing-record | FileCheck -check-prefix=CHECK-PARSE %s 28b15def22SArgyrios Kyrtzidis// RUN: c-index-test -index-file %s -include %t.h -Xclang -detailed-preprocessing-record | FileCheck -check-prefix=CHECK-INDEX %s 29b15def22SArgyrios Kyrtzidis 30b15def22SArgyrios Kyrtzidis// CHECK-PARSE: pch-with-errors.m:{{.*}} FunctionDecl=foo 31b15def22SArgyrios Kyrtzidis// CHECK-PARSE: pch-with-errors.m:{{.*}} ObjCMessageExpr=meth 32b15def22SArgyrios Kyrtzidis 33b15def22SArgyrios Kyrtzidis// CHECK-INDEX: [indexDeclaration]: kind: function | name: foo 34b15def22SArgyrios Kyrtzidis// CHECK-INDEX: [indexEntityReference]: kind: objc-instance-method | name: meth 35