diff options
author | Fariborz Jahanian <fjahanian@apple.com> | 2012-03-07 00:58:41 +0000 |
---|---|---|
committer | Fariborz Jahanian <fjahanian@apple.com> | 2012-03-07 00:58:41 +0000 |
commit | d6cb4a858db0592f6f946fd99a10a9dfcbea6ee9 (patch) | |
tree | a8120e90f5c0b3336dcd4a5247d46c88771c9db4 /clang/lib/Sema/SemaExprMember.cpp | |
parent | eb06e2524239fcd6f1078dd3674d2e3e0afe5d64 (diff) | |
download | llvm-d6cb4a858db0592f6f946fd99a10a9dfcbea6ee9.zip llvm-d6cb4a858db0592f6f946fd99a10a9dfcbea6ee9.tar.gz llvm-d6cb4a858db0592f6f946fd99a10a9dfcbea6ee9.tar.bz2 |
objective-c lldb support: don't perform ivar access control check
when debugging. // rdar://10997647
llvm-svn: 152187
Diffstat (limited to 'clang/lib/Sema/SemaExprMember.cpp')
-rw-r--r-- | clang/lib/Sema/SemaExprMember.cpp | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/clang/lib/Sema/SemaExprMember.cpp b/clang/lib/Sema/SemaExprMember.cpp index e0dfd677..64d5d60 100644 --- a/clang/lib/Sema/SemaExprMember.cpp +++ b/clang/lib/Sema/SemaExprMember.cpp @@ -1189,16 +1189,17 @@ Sema::LookupMemberExpr(LookupResult &R, ExprResult &BaseExpr, dyn_cast<ObjCCategoryImplDecl>(ObjCImpDecl)) ClassOfMethodDecl = CatImplClass->getClassInterface(); } - - if (IV->getAccessControl() == ObjCIvarDecl::Private) { - if (!declaresSameEntity(ClassDeclared, IDecl) || - !declaresSameEntity(ClassOfMethodDecl, ClassDeclared)) - Diag(MemberLoc, diag::error_private_ivar_access) + if (!getLangOptions().DebuggerSupport) { + if (IV->getAccessControl() == ObjCIvarDecl::Private) { + if (!declaresSameEntity(ClassDeclared, IDecl) || + !declaresSameEntity(ClassOfMethodDecl, ClassDeclared)) + Diag(MemberLoc, diag::error_private_ivar_access) + << IV->getDeclName(); + } else if (!IDecl->isSuperClassOf(ClassOfMethodDecl)) + // @protected + Diag(MemberLoc, diag::error_protected_ivar_access) << IV->getDeclName(); - } else if (!IDecl->isSuperClassOf(ClassOfMethodDecl)) - // @protected - Diag(MemberLoc, diag::error_protected_ivar_access) - << IV->getDeclName(); + } } if (getLangOptions().ObjCAutoRefCount) { Expr *BaseExp = BaseExpr.get()->IgnoreParenImpCasts(); |