From fa432391a708448518df1e6ced4e34f4c349d169 Mon Sep 17 00:00:00 2001 From: Fariborz Jahanian Date: Thu, 14 Oct 2010 21:30:10 +0000 Subject: [PATCH] Put line number on the diagnostic. //rdar: //8550657. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116519 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Sema/SemaObjCProperty.cpp | 2 +- test/SemaObjCXX/property-synthesis-error.mm | 32 +++++++++++++++++++++ 2 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 test/SemaObjCXX/property-synthesis-error.mm diff --git a/lib/Sema/SemaObjCProperty.cpp b/lib/Sema/SemaObjCProperty.cpp index fbb87b9bf4..f7555cfa6a 100644 --- a/lib/Sema/SemaObjCProperty.cpp +++ b/lib/Sema/SemaObjCProperty.cpp @@ -501,7 +501,7 @@ Decl *Sema::ActOnPropertyImplDecl(Scope *S, ParmVarDecl *Param = (*P); Expr *rhs = new (Context) DeclRefExpr(Param,Param->getType(), SourceLocation()); - ExprResult Res = BuildBinOp(S, SourceLocation(), + ExprResult Res = BuildBinOp(S, lhs->getLocEnd(), BO_Assign, lhs, rhs); PIDecl->setSetterCXXAssignment(Res.takeAs()); } diff --git a/test/SemaObjCXX/property-synthesis-error.mm b/test/SemaObjCXX/property-synthesis-error.mm new file mode 100644 index 0000000000..59e17b2a8d --- /dev/null +++ b/test/SemaObjCXX/property-synthesis-error.mm @@ -0,0 +1,32 @@ +// RUN: %clang_cc1 -fsyntax-only -verify %s +// rdar: //8550657 + +@interface NSArray @end + +@interface NSMutableArray : NSArray @end + +@interface MyClass +{ + NSMutableArray * _array; +} + +@property (readonly) NSArray * array; + +@end + +@interface MyClass () + +@property (readwrite) NSMutableArray * array; + +@end + +@implementation MyClass + +@synthesize array=_array; // expected-error {{assigning to 'NSMutableArray *' from incompatible type 'NSArray *'}} + +@end + +int main(void) +{ + return 0; +} -- 2.50.1