From: Ted Kremenek Date: Wed, 16 Dec 2009 19:46:44 +0000 (+0000) Subject: Temporarily revert 91553. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=a07cb9364de3c790c866e94652b6c95f3212f540;p=clang Temporarily revert 91553. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91557 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Analysis/BasicStore.cpp b/lib/Analysis/BasicStore.cpp index 237c1f9bf4..a38aaa7eb2 100644 --- a/lib/Analysis/BasicStore.cpp +++ b/lib/Analysis/BasicStore.cpp @@ -479,11 +479,15 @@ Store BasicStoreManager::getInitialStore(const LocationContext *InitLoc) { const Decl& CD = *InitLoc->getDecl(); if (const ObjCMethodDecl* MD = dyn_cast(&CD)) { if (MD->getSelfDecl() == PD) { - // FIXME: Add type constraints (when they become available) to - // SelfRegion? (i.e., it implements MD->getClassInterface()). - const MemRegion *SelfRegion = MRMgr.getVarRegion(PD, InitLoc); - St = BindInternal(St, ValMgr.makeLoc(SelfRegion), - ValMgr.getRegionValueSymbolVal(SelfRegion)); + // FIXME: Just use a symbolic region, and remove ObjCObjectRegion + // entirely. + const ObjCObjectRegion *SelfRegion = + MRMgr.getObjCObjectRegion(MD->getClassInterface(), + MRMgr.getHeapRegion()); + + St = BindInternal(St, ValMgr.makeLoc(MRMgr.getVarRegion(PD, InitLoc)), + ValMgr.makeLoc(SelfRegion)); + // Scan the method for ivar references. While this requires an // entire AST scan, the cost should not be high in practice. St = scanForIvars(MD->getBody(), PD, SelfRegion, St);