blob: 2dffe66ab326bf6f1af82e7f01a6df02a818e7e1 [file] [log] [blame]
Fariborz Jahanianda4ad9f2010-11-08 18:37:50 +00001// RUN: %clang_cc1 -x objective-c++ -Wno-return-type -fblocks -fms-extensions -rewrite-objc %s -o %t-rw.cpp
2// RUN: %clang_cc1 -fsyntax-only -fms-extensions -Wno-address-of-temporary -Did="void *" -D"SEL=void*" -D"__declspec(X)=" %t-rw.cpp
3// radar 8608293
4
Fariborz Jahanianda4ad9f2010-11-08 18:37:50 +00005void *sel_registerName(const char *);
6
7extern "C" void nowarn(id);
8
9extern "C" void noblockwarn(void (^)());
10
11@interface INTFOFPROP
12@property (readwrite, retain) INTFOFPROP *outer;
13@property (readwrite, retain) id inner;
14@end
15
16@interface NSSet
17- (NSSet *)objectsPassingTest:(char (^)(id obj, char *stop))predicate ;
18@end
19
20@interface INTF
21- (NSSet *)Meth;
22@end
23
24@implementation INTF
25
26- (NSSet *)Meth
27{
28 NSSet *aces;
29
30 noblockwarn(^() {
31 INTFOFPROP *ace;
32 nowarn(ace.outer.inner);
33 noblockwarn(^() {
34 INTFOFPROP *ace;
35 nowarn(ace.outer.inner);
36 });
37 });
38
39 noblockwarn(^() {
40 INTFOFPROP *ace;
41 nowarn(ace.outer.inner);
42 });
43
44return [aces objectsPassingTest:^(id obj, char *stop)
45 {
46 INTFOFPROP *ace = (INTFOFPROP *)obj;
47 nowarn(ace.outer.inner);
48 return (char)0;
49 }];
50
51}
52@end