summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema
diff options
context:
space:
mode:
authorFariborz Jahanian <fjahanian@apple.com>2012-04-04 20:05:25 +0000
committerFariborz Jahanian <fjahanian@apple.com>2012-04-04 20:05:25 +0000
commit6bd222603773b46149c4762e82c21335df28349b (patch)
treec69e00ae536faffb4f1b748704eb4cf6bf930cf7 /clang/lib/Sema
parent3c18cd3de1e20d24bfe5554ef21a7d14f18d9217 (diff)
downloadbcm5719-llvm-6bd222603773b46149c4762e82c21335df28349b.tar.gz
bcm5719-llvm-6bd222603773b46149c4762e82c21335df28349b.zip
objc-arc: provide a warning when 'receiver' of a message is 'weak'
in arc mode and opted-in with -Wreceiver-is-weak flag. // rdar://10225276 llvm-svn: 154042
Diffstat (limited to 'clang/lib/Sema')
-rw-r--r--clang/lib/Sema/SemaExprObjC.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/clang/lib/Sema/SemaExprObjC.cpp b/clang/lib/Sema/SemaExprObjC.cpp
index 448f1459647..b62d56efdab 100644
--- a/clang/lib/Sema/SemaExprObjC.cpp
+++ b/clang/lib/Sema/SemaExprObjC.cpp
@@ -2232,6 +2232,11 @@ ExprResult Sema::BuildInstanceMessage(Expr *Receiver,
}
if (getLangOpts().ObjCAutoRefCount) {
+ if (Receiver &&
+ (Receiver->IgnoreParenImpCasts()->getType().getObjCLifetime()
+ == Qualifiers::OCL_Weak))
+ Diag(Receiver->getLocStart(), diag::warn_receiver_is_weak);
+
// In ARC, annotate delegate init calls.
if (Result->getMethodFamily() == OMF_init &&
(SuperLoc.isValid() || isSelfExpr(Receiver))) {
OpenPOWER on IntegriCloud