aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFariborz Jahanian <fjahanian@apple.com>2011-10-12 00:00:57 +0000
committerFariborz Jahanian <fjahanian@apple.com>2011-10-12 00:00:57 +0000
commit13546a871db44c707001f507a9edfd0d5bcc81b4 (patch)
tree85e788bff13be001513ca136370a8c0526e506de
parent6dbba4fc128e2e2f5b26be996392bd32c0707f13 (diff)
objc: note location of the previously declared
property in the diagnostic. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141745 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/Sema/SemaObjCProperty.cpp4
-rw-r--r--test/SemaObjC/property-category-3.m2
-rw-r--r--test/SemaObjC/property-inherited.m4
3 files changed, 6 insertions, 4 deletions
diff --git a/lib/Sema/SemaObjCProperty.cpp b/lib/Sema/SemaObjCProperty.cpp
index df95396ee4..063b4abfb2 100644
--- a/lib/Sema/SemaObjCProperty.cpp
+++ b/lib/Sema/SemaObjCProperty.cpp
@@ -936,9 +936,11 @@ Sema::DiagnosePropertyMismatch(ObjCPropertyDecl *Property,
QualType ConvertedType;
if (!isObjCPointerConversion(RHSType, LHSType,
ConvertedType, IncompatibleObjC) ||
- IncompatibleObjC)
+ IncompatibleObjC) {
Diag(Property->getLocation(), diag::warn_property_types_are_incompatible)
<< Property->getType() << SuperProperty->getType() << inheritedName;
+ Diag(SuperProperty->getLocation(), diag::note_property_declare);
+ }
}
}
diff --git a/test/SemaObjC/property-category-3.m b/test/SemaObjC/property-category-3.m
index 237de0f1f5..2a61d92724 100644
--- a/test/SemaObjC/property-category-3.m
+++ b/test/SemaObjC/property-category-3.m
@@ -1,7 +1,7 @@
// RUN: %clang_cc1 -fsyntax-only -verify %s
@protocol P
- @property(readonly) int X;
+ @property(readonly) int X; // expected-note {{property declared here}}
@end
@protocol P1<P>
diff --git a/test/SemaObjC/property-inherited.m b/test/SemaObjC/property-inherited.m
index 11ef2befa9..f5f1b420c2 100644
--- a/test/SemaObjC/property-inherited.m
+++ b/test/SemaObjC/property-inherited.m
@@ -21,7 +21,7 @@
id _delegate;
}
@property(nonatomic, assign) id<FooDelegate> delegate;
-@property(nonatomic, assign) id<BarDelegate> delegate2;
+@property(nonatomic, assign) id<BarDelegate> delegate2; // expected-note {{property declared here}}
@end
@interface Bar : Foo {
}
@@ -36,7 +36,7 @@
@interface Base : NSData
@property(assign) id ref;
@property(assign) Base *p_base;
-@property(assign) NSMutableData *p_data;
+@property(assign) NSMutableData *p_data; // expected-note {{property declared here}}
@end
@interface Data : Base