Home | History | Annotate | Download | only in Rewriter
      1 // RUN: %clang_cc1 -E %s -o %t.mm
      2 // RUN: %clang_cc1 -x objective-c++ -fblocks -fms-extensions -rewrite-objc %t.mm -o - | FileCheck %s
      3 
      4 // rdar://11095151
      5 
      6 typedef void (^void_block_t)(void);
      7 
      8 @interface PropertyClass {
      9     int q;
     10     void_block_t __completion;
     11     PropertyClass* YVAR;
     12     id ID;
     13 }
     14 @property int q;
     15 @property int r;
     16 
     17 @property (copy) void_block_t completionBlock;
     18 @property (retain) PropertyClass* Yblock;
     19 @property (copy) id ID;
     20 
     21 @end
     22 
     23 @implementation PropertyClass
     24 @synthesize q;  // attributes should be "Ti,Vq"
     25 @dynamic r;     // attributes should be "Ti,D"
     26 @synthesize completionBlock=__completion; // "T@?,C,V__completion"
     27 @synthesize Yblock = YVAR; // "T@\"PropertyClass\",&,VYVAR"
     28 @synthesize  ID; // "T@,C,VID"
     29 @end
     30 
     31 // CHECK: Ti,Vq
     32 // CHECK: Ti,D
     33 // CHECK: T@?,C,V__completion
     34 // CHECK: T@\"PropertyClass\",&,VYVAR
     35 
     36 @interface Test @end
     37 @interface Test (Category)
     38 @property int q;
     39 @end
     40 
     41 @implementation Test (Category)
     42 @dynamic q;
     43 @end
     44 
     45 // CHECK: {{"q","Ti,D"}}
     46