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