diff options
author | Jordan Rose <jordan_rose@apple.com> | 2012-06-28 16:39:28 +0000 |
---|---|---|
committer | Jordan Rose <jordan_rose@apple.com> | 2012-06-28 16:39:28 +0000 |
commit | ee3d99f6be597364fedad2006c71e62e0baaed6b (patch) | |
tree | 696f099ffc52c844b847998642d5083122cc0705 /clang/lib/Sema/SemaExprObjC.cpp | |
parent | 181d67ecb19230ddc1a8fb38e740b613077fbbce (diff) | |
download | bcm5719-llvm-ee3d99f6be597364fedad2006c71e62e0baaed6b.tar.gz bcm5719-llvm-ee3d99f6be597364fedad2006c71e62e0baaed6b.zip |
Warn on weak properties declared in protocols as well.
Previously this caused a crash, since protocols are not interfaces.
llvm-svn: 159357
Diffstat (limited to 'clang/lib/Sema/SemaExprObjC.cpp')
-rw-r--r-- | clang/lib/Sema/SemaExprObjC.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/clang/lib/Sema/SemaExprObjC.cpp b/clang/lib/Sema/SemaExprObjC.cpp index 598ad0b27ae..a3fe7d3bbef 100644 --- a/clang/lib/Sema/SemaExprObjC.cpp +++ b/clang/lib/Sema/SemaExprObjC.cpp @@ -1379,10 +1379,12 @@ static void DiagnoseARCUseOfWeakReceiver(Sema &S, Expr *Receiver) { ObjCMethodDecl *Method = ME->getMethodDecl(); if (Method && Method->isSynthesized()) { Selector Sel = Method->getSelector(); - if (Sel.getNumArgs() == 0) + if (Sel.getNumArgs() == 0) { + const DeclContext *Container = Method->getDeclContext(); PDecl = - S.LookupPropertyDecl(Method->getClassInterface(), + S.LookupPropertyDecl(cast<ObjCContainerDecl>(Container), Sel.getIdentifierInfoForSlot(0)); + } if (PDecl) T = PDecl->getType(); } |