aboutsummaryrefslogtreecommitdiff
path: root/test/SemaObjC/property-impl-misuse.m
diff options
context:
space:
mode:
Diffstat (limited to 'test/SemaObjC/property-impl-misuse.m')
-rw-r--r--test/SemaObjC/property-impl-misuse.m16
1 files changed, 16 insertions, 0 deletions
diff --git a/test/SemaObjC/property-impl-misuse.m b/test/SemaObjC/property-impl-misuse.m
new file mode 100644
index 000000000000..7b956b5f7b4d
--- /dev/null
+++ b/test/SemaObjC/property-impl-misuse.m
@@ -0,0 +1,16 @@
+// RUN: clang-cc -fsyntax-only -verify %s
+
+@interface I {
+ int Y;
+}
+@property int X;
+@property int Y;
+@property int Z;
+@end
+
+@implementation I
+@dynamic X; // expected-note {{previous declaration is here}}
+@dynamic X; // expected-error {{property 'X' is already implemented}}
+@synthesize Y; // expected-note {{previous use is here}}
+@synthesize Z=Y; // expected-error {{synthesized properties 'Z' and 'Y' both claim ivar 'Y'}}
+@end