From 9cd6f0f58570a98a6d6acee8803c73986c6846b4 Mon Sep 17 00:00:00 2001 From: Fariborz Jahanian Date: Wed, 29 Apr 2009 23:31:56 +0000 Subject: [PATCH] Change to warning when property uses an ivar in super class in an @synthesize diective, as it breaks few projects. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70441 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/clang/Basic/DiagnosticSemaKinds.td | 4 ++-- lib/Sema/SemaDeclObjC.cpp | 2 +- test/SemaObjC/ivar-sem-check-2.m | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/include/clang/Basic/DiagnosticSemaKinds.td b/include/clang/Basic/DiagnosticSemaKinds.td index 098bbd4e68..bf70de99eb 100644 --- a/include/clang/Basic/DiagnosticSemaKinds.td +++ b/include/clang/Basic/DiagnosticSemaKinds.td @@ -220,8 +220,8 @@ def error_synthesized_ivar_yet_not_supported : Error< def error_property_ivar_type : Error< "type of property %0 does not match type of ivar %1">; -def error_ivar_in_superclass_use : Error< - "property %0 attempting to use ivar %1 declared in in super class %2">; +def warn_ivar_in_superclass_use : Warning< + "property %0 attempting to use ivar %1 declared in super class %2">; def error_weak_property : Error< "existing ivar %1 for __weak property %0 must be __weak">; def error_strong_property : Error< diff --git a/lib/Sema/SemaDeclObjC.cpp b/lib/Sema/SemaDeclObjC.cpp index 7eea4ff93e..170efec5f3 100644 --- a/lib/Sema/SemaDeclObjC.cpp +++ b/lib/Sema/SemaDeclObjC.cpp @@ -1914,7 +1914,7 @@ Sema::DeclPtrTy Sema::ActOnPropertyImplDecl(SourceLocation AtLoc, } else if (getLangOptions().ObjCNonFragileABI && ClassDeclared != IDecl) { - Diag(PropertyLoc, diag::error_ivar_in_superclass_use) + Diag(PropertyLoc, diag::warn_ivar_in_superclass_use) << property->getDeclName() << Ivar->getDeclName() << ClassDeclared->getDeclName(); Diag(Ivar->getLocation(), diag::note_previous_access_declaration) diff --git a/test/SemaObjC/ivar-sem-check-2.m b/test/SemaObjC/ivar-sem-check-2.m index 6a703b24f3..e14a80ffa4 100644 --- a/test/SemaObjC/ivar-sem-check-2.m +++ b/test/SemaObjC/ivar-sem-check-2.m @@ -17,7 +17,7 @@ @implementation Sub @synthesize value; // expected-note {{previous use is here}} @synthesize value1=value; // expected-error {{synthesized properties 'value1' and 'value' both claim ivar 'value'}} -@synthesize prop=value2; // expected-error {{property 'prop' attempting to use ivar 'value2' declared in in super class 'Super'}} +@synthesize prop=value2; // expected-warning {{property 'prop' attempting to use ivar 'value2' declared in super class 'Super'}} @end -- 2.40.0