diff options
author | Fariborz Jahanian <fjahanian@apple.com> | 2014-03-14 23:30:18 +0000 |
---|---|---|
committer | Fariborz Jahanian <fjahanian@apple.com> | 2014-03-14 23:30:18 +0000 |
commit | e3b5c99fde0dfb7c0f691b7023903bc56962a901 (patch) | |
tree | 7732713318a6519de02448d6c15473cc48dfe2f2 /clang/lib/Sema/SemaDecl.cpp | |
parent | 2e4e62e2cc114d38ffb5601453ab7e3012c1ae18 (diff) | |
download | bcm5719-llvm-e3b5c99fde0dfb7c0f691b7023903bc56962a901.tar.gz bcm5719-llvm-e3b5c99fde0dfb7c0f691b7023903bc56962a901.zip |
Objective-C. Redo turning off designated initialization warnings on
'init' methods which are unavailable. Subclasses of NSObject
have to implement such methods as a common pattern to prevent
user's own implementation. // rdar://16305460
llvm-svn: 203984
Diffstat (limited to 'clang/lib/Sema/SemaDecl.cpp')
-rw-r--r-- | clang/lib/Sema/SemaDecl.cpp | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/clang/lib/Sema/SemaDecl.cpp b/clang/lib/Sema/SemaDecl.cpp index eba195386fa..f4e0df6d0ab 100644 --- a/clang/lib/Sema/SemaDecl.cpp +++ b/clang/lib/Sema/SemaDecl.cpp @@ -9831,14 +9831,19 @@ Decl *Sema::ActOnFinishFunctionBody(Decl *dcl, Stmt *Body, MD->isDesignatedInitializerForTheInterface(&InitMethod); assert(isDesignated && InitMethod); (void)isDesignated; - Diag(MD->getLocation(), - diag::warn_objc_designated_init_missing_super_call); - Diag(InitMethod->getLocation(), - diag::note_objc_designated_init_marked_here); + // Don't issue this warning for unavaialable inits. + if (!MD->isUnavailable()) { + Diag(MD->getLocation(), + diag::warn_objc_designated_init_missing_super_call); + Diag(InitMethod->getLocation(), + diag::note_objc_designated_init_marked_here); + } getCurFunction()->ObjCWarnForNoDesignatedInitChain = false; } if (getCurFunction()->ObjCWarnForNoInitDelegation) { - Diag(MD->getLocation(), diag::warn_objc_secondary_init_missing_init_call); + // Don't issue this warning for unavaialable inits. + if (!MD->isUnavailable()) + Diag(MD->getLocation(), diag::warn_objc_secondary_init_missing_init_call); getCurFunction()->ObjCWarnForNoInitDelegation = false; } } else { |