objc-foreach-8.mm   [plain text]


/* APPLE LOCAL file radar 4631818 */
/* { dg-options "-mmacosx-version-min=10.5 -framework Foundation" { target powerpc*-*-darwin* i?86*-*-darwin* } } */
/* { dg-options "-framework Foundation" { target arm*-*-darwin* } } */
/* { dg-do run } */
#import <Foundation/Foundation.h>

NSArray * createTestVictim(unsigned capacity) {
    NSMutableArray * arr = [[NSMutableArray alloc] initWithCapacity:capacity];
    int x = 0;

    for(x = 0; x < capacity; x++) {
        NSNumber * num = [NSNumber numberWithInteger:x];
        [arr addObject:num];
    }
    
    NSArray * immutableCopy = [arr copy];
    [arr release];
    
    return immutableCopy;
}

void addStuffUp(NSArray * values) {
    NSInteger accumulator = 0;
//    for (id item in values) {
    id item;
    for (item in values) {
        accumulator += [item integerValue];
    }
}

int main (int argc, char const* argv[]) {
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
    NSArray * target = createTestVictim(10);
    addStuffUp(target);
    [pool release];
    return 0;
}