// RUN: %clang_cc1 -fsyntax-only -verify -Wno-objc-root-class %s

struct __objcFastEnumerationState; 
@implementation MyList // expected-warning {{cannot find interface declaration for 'MyList'}}
- (unsigned int)countByEnumeratingWithState:  (struct __objcFastEnumerationState *)state objects:  (id *)items count:(unsigned int)stackcount
{
     return 0;
}
@end


int LOOP();

@implementation MyList (BasicTest) 
- (void)compilerTestAgainst {
MyList * el; 
     for (el in @"foo") 
	  { LOOP(); }
}
@end


static int test7(id keys) {
  // FIXME: would be nice to suppress the secondary diagnostics.
  for (id key; in keys) ;  // expected-error {{use of undeclared identifier 'in'}} \
                           // expected-error {{expected ';' in 'for' statement specifier}} \
                           // expected-warning {{expression result unused}}
}
