1/* Contributed by Nicola Pero <nicola.pero@meta-innovation.com>, December 2010. */ 2/* { dg-options "-Wall" } */ 3/* { dg-do compile } */ 4 5/* Test that fast enumeration loops where the iterating variable is declared 6 but not used do not generate warnings. */ 7 8/* 9struct __objcFastEnumerationState 10{ 11 unsigned long state; 12 id *itemsPtr; 13 unsigned long *mutationsPtr; 14 unsigned long extra[5]; 15}; 16*/ 17@interface Object 18{ 19 Class isa; 20} 21- (unsigned long)countByEnumeratingWithState: (struct __objcFastEnumerationState *)state 22 objects:(id *)stackbuf 23 count:(unsigned int)len; 24- (id) enumerator; 25- (Class) classEnumerator; 26@end 27 28unsigned int count_objects_in_collection (id collection) 29{ 30 unsigned int count = 0; 31 32 /* The following line should generate no warnings even with 33 -Wall. */ 34 for (id object in collection) 35 count++; 36 37 return count; 38} 39 40unsigned int count_objects_in_collection_2 (id collection) 41{ 42 unsigned int count = 0; 43 id object; 44 45 /* The following line should generate no warnings even with 46 -Wall. */ 47 for (object in collection) 48 count++; 49 50 return count; 51} 52