]> granicus.if.org Git - clang/commit
Fix:
authorTed Kremenek <kremenek@apple.com>
Sun, 27 Sep 2009 20:45:21 +0000 (20:45 +0000)
committerTed Kremenek <kremenek@apple.com>
Sun, 27 Sep 2009 20:45:21 +0000 (20:45 +0000)
commit8780679b02bea5ab6360f3f8ebf3b221aaeda93f
treec9a0f9eb4bc2acdfb1b1f347cd0d2f85deffe238
parent50755b0dcc81eed9dcf27abe9162527013f26bd4
Fix:

<rdar://problem/6914474> checker doesn't realize that variable might
have been assigned if a pointer to that variable was passed to another
function via a structure

The problem here was the RegionStoreManager::InvalidateRegion didn't
invalidate the bindings of invalidated regions.  This required a
rewrite of this method using a worklist.

As part of this fix, changed ValueManager::getConjuredSymbolVal() to
require a 'void*' SymbolTag argument.  This tag is used to
differentiate two different symbols created at the same location.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82920 91177308-0d34-0410-b5e6-96231b3b80d8
include/clang/Analysis/PathSensitive/ValueManager.h
lib/Analysis/BasicStore.cpp
lib/Analysis/CFRefCount.cpp
lib/Analysis/GRExprEngine.cpp
lib/Analysis/RegionStore.cpp
lib/Analysis/ValueManager.cpp
test/Analysis/misc-ps-region-store.m