Home | History | Annotate | Download | only in Rewriter
      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
      4 
      5 void *sel_registerName(const char *);
      6 
      7 extern "C" void nowarn(id);
      8 
      9 extern "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 
     44 return [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
     53