summaryrefslogtreecommitdiffstats
path: root/test/SemaObjC/default-synthesize-1.m
diff options
context:
space:
mode:
authorFariborz Jahanian <fjahanian@apple.com>2010-07-17 01:16:59 +0000
committerFariborz Jahanian <fjahanian@apple.com>2010-07-17 01:16:59 +0000
commitaf6c314e6501f6f2fe247c5a18f77ba803c2e3c3 (patch)
treea4241231aeab0abb5d5d288eb5c828b23d0c8564 /test/SemaObjC/default-synthesize-1.m
parentad51e74030a59a8aa4ef0ebca1d7a701602ef53b (diff)
Another test case for on demand synthesis of ivars.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108600 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/SemaObjC/default-synthesize-1.m')
-rw-r--r--test/SemaObjC/default-synthesize-1.m88
1 files changed, 88 insertions, 0 deletions
diff --git a/test/SemaObjC/default-synthesize-1.m b/test/SemaObjC/default-synthesize-1.m
new file mode 100644
index 0000000000..30a2c8f1aa
--- /dev/null
+++ b/test/SemaObjC/default-synthesize-1.m
@@ -0,0 +1,88 @@
+// RUN: %clang_cc1 -fsyntax-only -fobjc-nonfragile-abi2 -verify %s
+
+@interface NSObject
+- (void) release;
+- (id) retain;
+@end
+@class NSString;
+
+@interface SynthItAll : NSObject
+@property int howMany;
+@property (retain) NSString* what;
+@end
+
+@implementation SynthItAll
+//@synthesize howMany, what;
+@end
+
+
+@interface SynthSetter : NSObject
+@property (nonatomic) int howMany; // REM: nonatomic to avoid warnings about only implementing one of the pair
+@property (nonatomic, retain) NSString* what;
+@end
+
+@implementation SynthSetter
+//@synthesize howMany, what;
+
+- (int) howMany {
+ return howMany;
+}
+// - (void) setHowMany: (int) value
+
+- (NSString*) what {
+ return what;
+}
+// - (void) setWhat: (NSString*) value
+@end
+
+
+@interface SynthGetter : NSObject
+@property (nonatomic) int howMany; // REM: nonatomic to avoid warnings about only implementing one of the pair
+@property (nonatomic, retain) NSString* what;
+@end
+
+@implementation SynthGetter
+//@synthesize howMany, what;
+
+// - (int) howMany
+- (void) setHowMany: (int) value {
+ howMany = value;
+}
+
+// - (NSString*) what
+- (void) setWhat: (NSString*) value {
+ if (what != value) {
+ [what release];
+ what = [value retain];
+ }
+}
+@end
+
+
+@interface SynthNone : NSObject
+@property int howMany;
+@property (retain) NSString* what;
+@end
+
+@implementation SynthNone
+//@synthesize howMany, what; // REM: Redundant anyway
+
+- (int) howMany {
+ return howMany;
+}
+- (void) setHowMany: (int) value {
+ howMany = value;
+}
+
+- (NSString*) what {
+ return what;
+}
+- (void) setWhat: (NSString*) value {
+ if (what != value) {
+ [what release];
+ what = [value retain];
+ }
+}
+@end
+
+