35 lines
		
	
	
		
			835 B
		
	
	
	
		
			Objective-C
		
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			835 B
		
	
	
	
		
			Objective-C
		
	
	
	
#ifndef HEADER
 | 
						|
#define HEADER
 | 
						|
 | 
						|
@interface I(cat)
 | 
						|
-(void)meth;
 | 
						|
@end
 | 
						|
 | 
						|
@interface I2
 | 
						|
-(void)meth;
 | 
						|
@end
 | 
						|
 | 
						|
struct FFF1
 | 
						|
extern I2 *somevar1;
 | 
						|
 | 
						|
enum FFF2
 | 
						|
extern I2 *somevar2;
 | 
						|
 | 
						|
#else
 | 
						|
 | 
						|
void foo(I2 *i) {
 | 
						|
  [i meth];
 | 
						|
}
 | 
						|
 | 
						|
#endif
 | 
						|
 | 
						|
// RUN: c-index-test -write-pch %t.h.pch %s -Xclang -detailed-preprocessing-record
 | 
						|
// RUN: c-index-test -test-load-source local %s -include %t.h -Xclang -detailed-preprocessing-record | FileCheck -check-prefix=CHECK-PARSE %s
 | 
						|
// RUN: c-index-test -index-file %s -include %t.h -Xclang -detailed-preprocessing-record | FileCheck -check-prefix=CHECK-INDEX %s
 | 
						|
 | 
						|
// CHECK-PARSE: pch-with-errors.m:{{.*}} FunctionDecl=foo
 | 
						|
// CHECK-PARSE: pch-with-errors.m:{{.*}} ObjCMessageExpr=meth
 | 
						|
 | 
						|
// CHECK-INDEX: [indexDeclaration]: kind: function | name: foo
 | 
						|
// CHECK-INDEX: [indexEntityReference]: kind: objc-instance-method | name: meth
 |