diff options
author | Fariborz Jahanian <fjahanian@apple.com> | 2011-11-08 22:51:27 +0000 |
---|---|---|
committer | Fariborz Jahanian <fjahanian@apple.com> | 2011-11-08 22:51:27 +0000 |
commit | 557fc9a99d50a8302c98196da346b19da76be291 (patch) | |
tree | a4a21b59c23935dbe7bed4cbd38420eded18e859 /clang/lib | |
parent | 26573c558583dea4f7e4b6637b9705aa25cffd83 (diff) | |
download | bcm5719-llvm-557fc9a99d50a8302c98196da346b19da76be291.tar.gz bcm5719-llvm-557fc9a99d50a8302c98196da346b19da76be291.zip |
objc: Don't crash on missing @interface decl.
// rdar://10415026
llvm-svn: 144143
Diffstat (limited to 'clang/lib')
-rw-r--r-- | clang/lib/Sema/SemaExpr.cpp | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/clang/lib/Sema/SemaExpr.cpp b/clang/lib/Sema/SemaExpr.cpp index c6a5f1ec6f5..4ba294cb8a1 100644 --- a/clang/lib/Sema/SemaExpr.cpp +++ b/clang/lib/Sema/SemaExpr.cpp @@ -1968,12 +1968,13 @@ Sema::LookupInObjCMethod(LookupResult &Lookup, Scope *S, } } else if (CurMethod->isInstanceMethod()) { // We should warn if a local variable hides an ivar. - ObjCInterfaceDecl *IFace = CurMethod->getClassInterface(); - ObjCInterfaceDecl *ClassDeclared; - if (ObjCIvarDecl *IV = IFace->lookupInstanceVariable(II, ClassDeclared)) { - if (IV->getAccessControl() != ObjCIvarDecl::Private || - IFace == ClassDeclared) - Diag(Loc, diag::warn_ivar_use_hidden) << IV->getDeclName(); + if (ObjCInterfaceDecl *IFace = CurMethod->getClassInterface()) { + ObjCInterfaceDecl *ClassDeclared; + if (ObjCIvarDecl *IV = IFace->lookupInstanceVariable(II, ClassDeclared)) { + if (IV->getAccessControl() != ObjCIvarDecl::Private || + IFace == ClassDeclared) + Diag(Loc, diag::warn_ivar_use_hidden) << IV->getDeclName(); + } } } |