1/* Syntax check for the new foreach statement. 2 Use of declaration in loop-header without requiring c99 mode. */ 3/* { dg-do compile } */ 4 5typedef struct objc_class *Class; 6 7typedef struct objc_object { 8 Class isa; 9} *id; 10 11 12@interface MyList 13@end 14 15@implementation MyList 16- (unsigned int)countByEnumeratingWithState:(struct __objcFastEnumerationState *)state objects:(id *)items count:(unsigned int)stackcount 17{ 18 return 0; 19} 20- (void)addObject:object { 21} 22 23@end 24 25@interface MyList (BasicTest) 26- (void)compilerTestAgainst; 27@end 28void BEGIN(); 29void INFORLOOP(); 30void END(); 31@implementation MyList (BasicTest) 32- (void)compilerTestAgainst { 33 34 BEGIN(); 35 for (id elem in (self)) 36 if (elem) 37 INFORLOOP(); 38 39 END(); 40} 41@end 42 43