From: Jordy Rose Date: Thu, 5 Aug 2010 03:33:56 +0000 (+0000) Subject: Tweak GRState::unbindLoc to use makeWithStore, and make sure it's only called for... X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=a9c76216c9d055b7161fdbe78f531e5f7fcd4f1e;p=clang Tweak GRState::unbindLoc to use makeWithStore, and make sure it's only called for non-region locations. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110310 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Checker/GRState.cpp b/lib/Checker/GRState.cpp index 69470bbbb2..82563eddca 100644 --- a/lib/Checker/GRState.cpp +++ b/lib/Checker/GRState.cpp @@ -69,15 +69,15 @@ const GRState *GRStateManager::MarshalState(const GRState *state, } const GRState *GRState::unbindLoc(Loc LV) const { + assert(!isa(LV) && "Use InvalidateRegion instead."); + Store OldStore = getStore(); Store NewStore = getStateManager().StoreMgr->Remove(OldStore, LV); if (NewStore == OldStore) return this; - GRState NewSt = *this; - NewSt.St = NewStore; - return getStateManager().getPersistentState(NewSt); + return makeWithStore(NewStore); } SVal GRState::getSValAsScalarOrLoc(const MemRegion *R) const {