add opensuse toolchain support, patch by Ismail Donmez!
[clang/stm8.git] / test / Rewriter / rewrite-nested-property-in-blocks.mm
blob2dffe66ab326bf6f1af82e7f01a6df02a818e7e1
1 // 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
5 void *sel_registerName(const char *);
7 extern "C" void nowarn(id);
9 extern "C" void noblockwarn(void (^)());
11 @interface INTFOFPROP 
12 @property (readwrite, retain) INTFOFPROP *outer;
13 @property (readwrite, retain) id inner;
14 @end
16 @interface NSSet
17 - (NSSet *)objectsPassingTest:(char (^)(id obj, char *stop))predicate ;
18 @end
20 @interface INTF
21 - (NSSet *)Meth;
22 @end
24 @implementation INTF
26 - (NSSet *)Meth
28     NSSet *aces;
30     noblockwarn(^() {
31         INTFOFPROP *ace;
32         nowarn(ace.outer.inner);
33         noblockwarn(^() {
34           INTFOFPROP *ace;
35           nowarn(ace.outer.inner);
36         });
37     });
39     noblockwarn(^() {
40         INTFOFPROP *ace;
41         nowarn(ace.outer.inner);
42     });
44 return [aces objectsPassingTest:^(id obj, char *stop)
45     {
46         INTFOFPROP *ace = (INTFOFPROP *)obj;
47         nowarn(ace.outer.inner);
48         return (char)0;
49     }];
52 @end