Fix PR 4594 by refactoring almost all casting logic from GRExprEngine::VisitCast
authorTed Kremenek <kremenek@apple.com>
Tue, 21 Jul 2009 21:03:30 +0000 (21:03 +0000)
committerTed Kremenek <kremenek@apple.com>
Tue, 21 Jul 2009 21:03:30 +0000 (21:03 +0000)
commitac7c7240f0baaae27cceed4084e789d70ef14ec2
tree14dc1b6e0bc90cb318e47d24c85a3a4c7e4e1681
parentdf3f1447e424b6c1d2e5647b63afb5b52a41fc3e
Fix PR 4594 by refactoring almost all casting logic from GRExprEngine::VisitCast
to SValuator::EvalCast. In the process, the StoreManagers now use this new cast
machinery, and the hack in GRExprEngine::EvalBind to handle implicit casts
involving OSAtomicCompareAndSwap and friends has been removed (and replaced with
logic closer to the logic specific to those functions).

llvm-svn: 76641
13 files changed:
clang/include/clang/Analysis/PathSensitive/GRExprEngine.h
clang/include/clang/Analysis/PathSensitive/GRState.h
clang/include/clang/Analysis/PathSensitive/SValuator.h
clang/include/clang/Analysis/PathSensitive/Store.h
clang/include/clang/Analysis/PathSensitive/ValueManager.h
clang/lib/Analysis/BasicStore.cpp
clang/lib/Analysis/CMakeLists.txt
clang/lib/Analysis/GRExprEngine.cpp
clang/lib/Analysis/RegionStore.cpp
clang/lib/Analysis/SValuator.cpp [new file with mode: 0644]
clang/lib/Analysis/SimpleSValuator.cpp
clang/lib/Analysis/ValueManager.cpp
clang/test/Analysis/misc-ps.m