summaryrefslogtreecommitdiffstats
path: root/clang/lib/Analysis/Store.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* rename: MemRegion:Zhongxing Xu2009-05-091-1/+1
| | | | | | | | | RValueType => ObjectType LValueType => LocationType No functionality change. llvm-svn: 71304
* Fix analyzer regression reported in PR 4164:Ted Kremenek2009-05-061-12/+31
| | | | | | | | | | - Update the old StoreManager::CastRegion to strip off 'ElementRegions' when casting to void* (Zhongxing: please validate) - Pass-by-reference argument invalidation logic in CFRefCount.cpp: - Strip ElementRegions when the ElementRegion is just a 'raw data' view on top of the underlying typed region. llvm-svn: 71094
* Rename 'makeZeroIndex' to 'makeZeroArrayIndex'.Ted Kremenek2009-05-041-1/+1
| | | | llvm-svn: 70865
* Zhongxing already implemented this FIXME.Ted Kremenek2009-05-041-2/+0
| | | | llvm-svn: 70864
* array indexes are unsigned integers of the same width as pointer.Zhongxing Xu2009-05-041-1/+1
| | | | | | | no-outofbounds.c still fails. Previously it passed because the array index is mistakenly a loc::ConcreteInt. llvm-svn: 70844
* BasicStore: 'ElementRegion' is the new 'TypedViewRegion'.Ted Kremenek2009-05-041-1/+6
| | | | | | | StoreManager: Handle casts from one element region to another. Update test cases. llvm-svn: 70836
* Handle 'long x = 0; char *y = (char *) x;' by layering anTed Kremenek2009-05-041-5/+20
| | | | | | | | | 'ElementRegion' on top of the VarRegion for 'x'. This causes the test case xfail_wine_crash.c to now pass for BasicStoreManager. It doesn't crash for RegionStoreManager either, but reports a bogus unintialized value warning. llvm-svn: 70832
* StoreManager::CastRegion:Ted Kremenek2009-05-011-4/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Don't layer TypedViewRegions on top of any region except SymbolicRegions and AllocaRegions. This follows from my offline discussion within Zhongxing about how TypedViewRegions really only represent memory getting re-appropriated for a new purpose. Fallout from this change: - Move test case from xfail_rdar_6440393.m to misc-ps-64.m (it now passes). - test/Analysis/fields.c now fails for region store (crash). Marking XFAIL. - test/Analysis/rdar-6441136-region.c now fails (only runs with region store). Marking XFAIL. Diagnosis: The analyzer now correctly identifies an early out-of-bounds memory access then the one flagged: rdar-6541136-region.c:17:3: warning: Load or store into an out-of-bound memory position. *p = 1; ^~ Changing the line: char *p = (void*) &wonky[1]; to char *p = (void*) &wonky[0]; (which should delay the buffer overrun) causes region store to crash, probably because it expects a TypedViewRegion. - test/Analysis/casts.c (region store) now fails (crash). Marking XFAIL. llvm-svn: 70565
* This patch is largely due to Zhongxing Xu. I've simply applied it because ofTed Kremenek2009-04-211-11/+31
| | | | | | | | some refactoring I did recently to StoreManager. StoreManager::CastRegion: Handle casts to void* by stripping TypedViewRegions. llvm-svn: 69751
* Refactor 'BasicStoreManager::CastRegion' and 'RegionStoreManager::CastRegion'Ted Kremenek2009-04-211-0/+47
into StoreManager::CastRegion. Both methods were practically identical, and this is core logic that is common to all StoreManagers since it defines the basic invariants of the abstract memory model. llvm-svn: 69730
OpenPOWER on IntegriCloud