1*67e74705SXin Li// RUN: %clang_cc1 -fsyntax-only -verify -Wno-objc-root-class %s 2*67e74705SXin Li 3*67e74705SXin Listruct __objcFastEnumerationState; 4*67e74705SXin Litypedef struct objc_class *Class; 5*67e74705SXin Litypedef struct objc_object { 6*67e74705SXin Li Class isa; 7*67e74705SXin Li} *id; 8*67e74705SXin Li 9*67e74705SXin Li 10*67e74705SXin Li@interface MyList 11*67e74705SXin Li@end 12*67e74705SXin Li 13*67e74705SXin Li@implementation MyList 14*67e74705SXin Li- (unsigned int)countByEnumeratingWithState: (struct __objcFastEnumerationState *)state objects: (id *)items count:(unsigned int)stackcount 15*67e74705SXin Li{ 16*67e74705SXin Li return 0; 17*67e74705SXin Li} 18*67e74705SXin Li@end 19*67e74705SXin Li 20*67e74705SXin Li@interface MyList (BasicTest) 21*67e74705SXin Li- (void)compilerTestAgainst; 22*67e74705SXin Li@end 23*67e74705SXin Li 24*67e74705SXin Li@implementation MyList (BasicTest) 25*67e74705SXin Li- (void)compilerTestAgainst { 26*67e74705SXin Li 27*67e74705SXin Li int i=0; 28*67e74705SXin Li for (int * elem in elem) // expected-error {{selector element type 'int *' is not a valid object}} \ 29*67e74705SXin Li expected-error {{the type 'int *' is not a pointer to a fast-enumerable object}} 30*67e74705SXin Li ++i; 31*67e74705SXin Li for (i in elem) // expected-error {{use of undeclared identifier 'elem'}} \ 32*67e74705SXin Li expected-error {{selector element type 'int' is not a valid object}} 33*67e74705SXin Li ++i; 34*67e74705SXin Li for (id se in i) // expected-error {{the type 'int' is not a pointer to a fast-enumerable object}} 35*67e74705SXin Li ++i; 36*67e74705SXin Li} 37*67e74705SXin Li@end 38*67e74705SXin Li 39