diff options
author | Fariborz Jahanian <fjahanian@apple.com> | 2013-12-17 22:44:28 +0000 |
---|---|---|
committer | Fariborz Jahanian <fjahanian@apple.com> | 2013-12-17 22:44:28 +0000 |
commit | 7e350d23b2159408029dd6608ef3f659f3d46d62 (patch) | |
tree | aa8485b65751ab744437e762fe25bff27da86ea5 /clang/lib/Sema/SemaDeclObjC.cpp | |
parent | 81e6fccbd72ac4be2be9ad014d78cf0c09e5a1bb (diff) | |
download | bcm5719-llvm-7e350d23b2159408029dd6608ef3f659f3d46d62.tar.gz bcm5719-llvm-7e350d23b2159408029dd6608ef3f659f3d46d62.zip |
Objctive-C. warn if dealloc is being overridden in
a category implementation. // rdar://15397430
llvm-svn: 197534
Diffstat (limited to 'clang/lib/Sema/SemaDeclObjC.cpp')
-rw-r--r-- | clang/lib/Sema/SemaDeclObjC.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/clang/lib/Sema/SemaDeclObjC.cpp b/clang/lib/Sema/SemaDeclObjC.cpp index 9f50a207c1a..d536f33c085 100644 --- a/clang/lib/Sema/SemaDeclObjC.cpp +++ b/clang/lib/Sema/SemaDeclObjC.cpp @@ -3213,6 +3213,14 @@ Decl *Sema::ActOnMethodDeclaration( ObjCMethod->addAttr( new (Context) ObjCRequiresSuperAttr(ObjCMethod->getLocation(), Context)); } + if (isa<ObjCCategoryImplDecl>(ImpDecl)) { + ObjCMethodFamily family = ObjCMethod->getMethodFamily(); + if (family == OMF_dealloc && IMD && IMD->isOverriding()) { + Diag(ObjCMethod->getLocation(), diag::warn_dealloc_in_category) + << ObjCMethod->getDeclName(); + Diag(ImpDecl->getLocation(), diag::note_declared_at); + } + } } else { cast<DeclContext>(ClassDecl)->addDecl(ObjCMethod); } |