1// RUN: %clang_cc1 -x objective-c++ -Wno-return-type -fblocks -fms-extensions -rewrite-objc -fobjc-runtime=macosx-fragile-10.5  %s -o %t-rw.cpp
2// RUN: %clang_cc1 -fsyntax-only -fblocks -Wno-address-of-temporary -D"id=struct objc_object*" -D"SEL=void*" -D"__declspec(X)=" %t-rw.cpp
3
4void *sel_registerName(const char *);
5void objc_enumerationMutation(id);
6
7@interface MyList
8- (id) allKeys;
9@end
10
11@implementation MyList
12- (unsigned int)countByEnumeratingWithState:  (struct __objcFastEnumerationState *)state objects:  (id *)items count:(unsigned int)stackcount
13{
14        return 0;
15}
16- (id) allKeys { return 0; }
17@end
18
19@interface MyList (BasicTest)
20- (void)compilerTestAgainst;
21@end
22
23int LOOP();
24@implementation MyList (BasicTest)
25- (void)compilerTestAgainst {
26  MyList * el;
27  int i;
28        for (el in [el allKeys]) {
29		for (i = 0; i < 10; i++)
30		  if (i == 5)
31		   break;
32
33		if (el == 0)
34		 break;
35		if (el != self)
36		  continue;
37		LOOP();
38	  }
39
40        for (id el1 in[el allKeys]) {
41	    LOOP();
42	    for (el in self) {
43	      if (el)
44		continue;
45	    }
46	    if (el1)
47	      break;
48	  }
49}
50@end
51
52