From dad963039874d88f0adc6889b64283fe5d1c94c6 Mon Sep 17 00:00:00 2001 From: Fariborz Jahanian Date: Wed, 22 Jan 2014 19:02:20 +0000 Subject: ObjectiveC. When issuing property implementation is not using backing ivar warning, ignore when property is not being synthesized (user declared its implementation @dynamic). // rdar://1583425 llvm-svn: 199820 --- clang/lib/Sema/SemaDeclObjC.cpp | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'clang/lib/Sema/SemaDeclObjC.cpp') diff --git a/clang/lib/Sema/SemaDeclObjC.cpp b/clang/lib/Sema/SemaDeclObjC.cpp index f7f1b4b5653..78c26d38a9f 100644 --- a/clang/lib/Sema/SemaDeclObjC.cpp +++ b/clang/lib/Sema/SemaDeclObjC.cpp @@ -3514,6 +3514,13 @@ void Sema::DiagnoseUnusedBackingIvarInAccessor(Scope *S, const ObjCIvarDecl *IV = GetIvarBackingPropertyAccessor(CurMethod, PDecl); if (!IV) continue; + // Property declared as @dynamic must be ignored. + if (ObjCPropertyImplDecl *PropertyImpDecl = + Context.getObjCPropertyImplDeclForPropertyDecl(PDecl, ImplD)) + if (PropertyImpDecl->getPropertyImplementation() == + ObjCPropertyImplDecl::Dynamic) + continue; + UnusedBackingIvarChecker Checker(*this, CurMethod, IV); Checker.TraverseStmt(CurMethod->getBody()); -- cgit v1.2.3