summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/SemaExprObjC.cpp
diff options
context:
space:
mode:
authorFariborz Jahanian <fjahanian@apple.com>2014-08-22 19:52:49 +0000
committerFariborz Jahanian <fjahanian@apple.com>2014-08-22 19:52:49 +0000
commite8b45505bc81a11960c9a714c239871079bad1a8 (patch)
tree53e1417c923002d1a59017f9828329addb426cd2 /clang/lib/Sema/SemaExprObjC.cpp
parentaf5fd6a4d5db63a2b064ffa0e82e541c1cff2e7c (diff)
downloadbcm5719-llvm-e8b45505bc81a11960c9a714c239871079bad1a8.tar.gz
bcm5719-llvm-e8b45505bc81a11960c9a714c239871079bad1a8.zip
Objective-C. Update my previous patch to not warn if
+initialize is called on 'super' in its implementation. rdar://16628028 llvm-svn: 216282
Diffstat (limited to 'clang/lib/Sema/SemaExprObjC.cpp')
-rw-r--r--clang/lib/Sema/SemaExprObjC.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/clang/lib/Sema/SemaExprObjC.cpp b/clang/lib/Sema/SemaExprObjC.cpp
index cbf41b5069a..22c55a7726f 100644
--- a/clang/lib/Sema/SemaExprObjC.cpp
+++ b/clang/lib/Sema/SemaExprObjC.cpp
@@ -2232,8 +2232,9 @@ ExprResult Sema::BuildClassMessage(TypeSourceInfo *ReceiverTypeInfo,
diag::err_illegal_message_expr_incomplete_type))
return ExprError();
- // Warn about explicit call of +initialize on its own class.
- if (Method && Method->getMethodFamily() == OMF_initialize) {
+ // Warn about explicit call of +initialize on its own class. But not on 'super'.
+ if (Method && Method->getMethodFamily() == OMF_initialize &&
+ !SuperLoc.isValid()) {
const ObjCInterfaceDecl *ID =
dyn_cast<ObjCInterfaceDecl>(Method->getDeclContext());
if (ID == Class) {
OpenPOWER on IntegriCloud