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 7extern "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 63typedef 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