diff options
author | Ted Kremenek <kremenek@apple.com> | 2009-04-29 16:03:27 +0000 |
---|---|---|
committer | Ted Kremenek <kremenek@apple.com> | 2009-04-29 16:03:27 +0000 |
commit | 5fa93d5285ed68a0819521f4681755ae696b996f (patch) | |
tree | b907cbacd13d6a1b66ae35b04df8e6820b515546 /lib/Analysis/CFRefCount.cpp | |
parent | 82539b09e33914861a60f0947500741ace409eb5 (diff) |
Add corner case logic to BasicStoreManager and GRSimpleVals::EvalBinOp to enable
reasoning about OSCompareAndSwap32Barrier/OSCompareAndSwap64Barrier. Essentially
the address of reference to a region (pointer-to-pointer) can be casted to
(int32_t*), and we need to handle the logic to convert the involved locations
back and forth from nonloc::LocAsInteger, nonloc::ConcreteInt, to Loc and
loc::ConcreteInt respectively. This adds some potentially suspect logic to
BasicStoreManager that allows the analyzer to reason about abuses of the C type
system. This should probably be refined, be ported over to RegionStoreManager,
and extended with "path-sensitive type checking" to flag bugs in clearly
incoherent code.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70382 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Analysis/CFRefCount.cpp')
0 files changed, 0 insertions, 0 deletions