Home | History | Annotate | Download | only in Rewriter
      1 // RUN: %clang_cc1 -E %s -o %t.mm
      2 // RUN: %clang_cc1 -x objective-c++ -fms-extensions -rewrite-objc %t.mm -o %t-rw.cpp 
      3 // RUN: FileCheck --input-file=%t-rw.cpp %s
      4 // RUN: %clang_cc1 -fsyntax-only  -Werror -DSEL="void *" -Did="struct objc_object *" -Wno-attributes -Wno-address-of-temporary -U__declspec -D"__declspec(X)=" %t-rw.cpp
      5 // rdar://11374235
      6 
      7 extern "C" void *sel_registerName(const char *);
      8 
      9 @interface NSObject 
     10 - (void) release;
     11 - (id) retain;
     12 @end
     13 @class NSString;
     14 
     15 @interface SynthItAll : NSObject
     16 @property int howMany;
     17 @property (retain) NSString* what; 
     18 @end
     19 
     20 @implementation SynthItAll
     21 @end
     22 
     23 
     24 @interface SynthSetter : NSObject
     25 @property (nonatomic) int howMany; 
     26 @property (nonatomic, retain) NSString* what; 
     27 @end
     28 
     29 @implementation SynthSetter
     30 
     31 - (int) howMany {
     32     return _howMany;
     33 }
     34 // - (void) setHowMany: (int) value
     35 
     36 - (NSString*) what {
     37     return _what;
     38 }
     39 // - (void) setWhat: (NSString*) value    
     40 @end
     41 
     42 
     43 @interface SynthGetter : NSObject
     44 @property (nonatomic) int howMany;
     45 @property (nonatomic, retain) NSString* what;
     46 @end
     47 
     48 @implementation SynthGetter
     49 // - (int) howMany
     50 - (void) setHowMany: (int) value {
     51     _howMany = value;
     52 }
     53 
     54 // - (NSString*) what
     55 - (void) setWhat: (NSString*) value {
     56     if (_what != value) {
     57         [_what release];
     58         _what = [value retain];
     59     }
     60 }
     61 @end
     62 
     63 typedef struct {
     64         int x:1;
     65         int y:1;
     66 } TBAR;
     67 
     68 @interface NONAME
     69 {
     70   TBAR _bar;
     71 }
     72 @property TBAR bad;
     73 @end
     74 
     75 @implementation NONAME
     76 @end
     77 
     78 // CHECK: (*(int *)((char *)self + OBJC_IVAR_$_SynthItAll$_howMany)) = howMany;
     79 // CHECK: return (*(int *)((char *)self + OBJC_IVAR_$_SynthGetter$_howMany));
     80 // CHECK: (*(TBAR *)((char *)self + OBJC_IVAR_$_NONAME$_bad)) = bad;
     81