aboutsummaryrefslogtreecommitdiff
path: root/lib/Analysis
AgeCommit message (Collapse)Author
2009-07-10Switch BasicStoreManager to use the new CastRegion implementation by default,Ted Kremenek
and replace the 'clang-cc' option '-analyzer-store=basic-new-cast' with '-analyzer-store=basic-old-cast'. We'll keep the old CastRegion implementation around for a little while for regression testing. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@75209 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-09Remove dead code.Zhongxing Xu
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@75127 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-07fix comment.Zhongxing Xu
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74890 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-06NewCastRegion: Handle casts *from* pointers to incomplete structs to other ↵Ted Kremenek
types. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74884 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-06Fix 80 col violation.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74877 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-06Restructure NewCastRegion to use a switch statement that dispatches off theTed Kremenek
region type. This better shows the logic of the method and allows the compiler to check if we didn't handle a specific region kind. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74876 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-06Fix 80 col violation.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74875 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-06NewCastRegion: Handle casts to any Objective-C pointer, not just qualified ids.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74874 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-06Implement FIXME.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74872 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-06StoreManager::NewCastRegion:Ted Kremenek
- Refactor logic that creates ElementRegions into a help method 'MakeElementRegion'. - Fix crash due to not handling StringRegions. Casts of StringRegions now result in a new ElementRegion layered on the original StringRegion. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74867 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-06Make 'BasicStoreManager' + 'NewCastRegion' testable from the command line ↵Ted Kremenek
using '-analyzer-store=basic-new-cast'. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74865 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-06NewCastRegion:Ted Kremenek
- Have test for 'CodeTextRegion' dominate other region tests. - Use 'getAsRecordType' instead of isa<RecordType> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74853 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-06Fix loop so that 'continue' statements actually cause the loop to iterate.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74852 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-06Move the new 'CastRegion' implementation from RegionStoreManager to StoreManagerTed Kremenek
(its superclass). This will allow us to experiment with using the new CastRegion with BasicStoreManager, and gradually phase out the old implementation. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74851 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-06Fix <rdar://problem/7033733>. The CF_RETURNS_RETAINED attribute should work ↵Ted Kremenek
if the return type on an Objective-C method is a CF type reference, not just an Objective-C object reference. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74841 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-06Further cleanup of region invalidation code. No functionality change.Zhongxing Xu
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74816 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-06Start to gradually move region invalidation code into store manager.Zhongxing Xu
No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74812 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-03remove utility methods that are not very useful.Zhongxing Xu
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74762 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-03Remove unused method.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74751 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-03BasicStoreManager: Use SymbolManager::canSymbolicate() to determine if a ↵Ted Kremenek
variable can be symbolicated. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74750 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-02Replace guarded calls in RegionStoreManager toTed Kremenek
ValueManager::getRegionValueSymbolVal() with unguarded calls to ValueManager::getRegionValueSymbolValOrUnknown(). This changes centralizes the decision of what values to symbolicate in SymbolManager rather than having it scatter in RegionStoreManager. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74730 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-02Enhance RegionStore to lazily symbolicate fields and array elements forTed Kremenek
structures passed-by-value as function arguments. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74729 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-02StoreManagers: Use 'hasGlobalsStorage()' and 'hasParametersStorage()' instead ofTed Kremenek
directly consulting if a VarDecl is an implicit or actual parameter, a global, etc. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74716 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-02Add a separate MemSpaceRegion for function/method arguments passed on the stack.Ted Kremenek
This will simplify the logic of StoreManagers that want to specially reason about the values of parameters. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74715 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-02Remove commented methods. Add MemRegion::printStdErr().Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74709 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-01Minor code cleanup: pull variables into scope of 'if' statement, limiting theirTed Kremenek
actual lifetime to their logical lifetime. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74665 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-01Add a FIXME to RegionStore, do some minor code cleanup, and get RegionStore toTed Kremenek
pass misc-ps.m. Currently RegionStore/BasicStore don't do any special reasoning about clang-style vectors, so we should return UnknownVal (in all cases) when accessing their values via an array. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74660 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-01add fixme.Zhongxing Xu
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74581 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-30Update old CastRegion logic to not assume that ElementRegion's super region is aTed Kremenek
TypedRegion. While we plan on removing this code at some point, it serves as a good reference implementation for use with BasicStore until we are sure the new CastRegion logic (in RegionStore.cpp) is correct. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74559 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-30Combine two conditional branches into one. No functionality change.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74552 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-30Instead of r74522, use another approach to fix xfail_regionstore_wine_crash.c.Zhongxing Xu
Mark the super region of the binding of block level expr in the Environment as live. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74525 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-30When retrieving element region, if its super region has binding, returnZhongxing Xu
unknown for it. Mark the super region of a live region as live, if the live region is pointed to by a live pointer variable. These fixes xfail_regionstore_wine_crash.c. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74524 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-30Block level expr should be visited. Otherwise variables in init expr ofZhongxing Xu
DeclStmt would be dead before the DeclStmt. For example: int x = 0; int y = x; 'x' would be dead before 'int y = x'. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74522 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-30add utility method.Zhongxing Xu
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74521 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-30remove dead code.Zhongxing Xu
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74517 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-30We do not require the super region of element region be typed. So do notZhongxing Xu
create TypedViewRegion for it. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74516 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-30De-ASTContext-ify DeclContext.Argyrios Kyrtzidis
Remove ASTContext parameter from DeclContext's methods. This change cascaded down to other Decl's methods and changes to call sites started "escalating". Timings using pre-tokenized "cocoa.h" showed only a ~1% increase in time run between and after this commit. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74506 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-30Remove the ASTContext parameter from the getBody() methods of Decl and ↵Argyrios Kyrtzidis
subclasses. Timings showed no significant difference before and after the commit. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74504 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-30Remove the ASTContext parameter from the attribute-related methods of Decl.Argyrios Kyrtzidis
The implementations of these methods can Use Decl::getASTContext() to get the ASTContext. This commit touches a lot of files since call sites for these methods are everywhere. I used pre-tokenized "carbon.h" and "cocoa.h" headers to do some timings, and there was no real time difference between before the commit and after it. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74501 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-30Key decisions about 'bool' vs '_Bool' to be based on a new flag in langoptions.Chris Lattner
This is simple enough, but then I thought it would be nice to make PrintingPolicy get a LangOptions so that various things can key off "bool" and "C++" independently. This spiraled out of control. There are many fixme's, but I think things are slightly better than they were before. One thing that can be improved: CFG should probably have an ASTContext pointer in it, which would simplify its clients. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74493 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-29Invalidate the alloca region by setting its default value to conjured symbol.Zhongxing Xu
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74419 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-28Adjust retrieve handler priority. If a field is of array type, it should be Zhongxing Xu
handled by RetrieveArray(). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74409 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-28Invalidate a field of struct type by setting its default value to conjured Zhongxing Xu
symbol. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74408 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-28Do not crash on binding concrete integer location.Zhongxing Xu
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74407 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-28Simplify some code. As in region store, we always expect the location is aZhongxing Xu
memregion. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74406 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-27Remove the last 'GetXXX' methods from GRStateManager.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74361 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-26Remove '#include <sstream>' from libAnalysis.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74245 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-26Update method signature.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74244 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-26Unbreak build.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74238 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-26Remove orphaned header file.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74231 91177308-0d34-0410-b5e6-96231b3b80d8