- Jan 21, 2009
-
-
Ted Kremenek authored
Static Analyzer: Replace LiveSymbols/DeadSymbols sets with a new object called "SymbolReaper". Right now it just consolidates the two and cleans up some client code, but shortly it will be used to enable "lazy computation" of live symbols for use with RegionStore. llvm-svn: 62722
-
- Dec 20, 2008
-
-
Zhongxing Xu authored
* Now Bind() methods take and return GRState* because binding could also alter GDM. * No variables are initialized except those declared with initial values. * failed C test cases are due to bugs in RemoveDeadBindings(), which removes constraints that is still alive. This will be fixed in later patch. * default value of array and struct regions will be implemented in later patch. llvm-svn: 61274
-
- Dec 05, 2008
-
-
Ted Kremenek authored
Rename SymbolID to SymbolRef. This is a precursor to some overhauling of the representation of symbolic values. llvm-svn: 60575
-
Ted Kremenek authored
StoreManager::Retrieve and StoreManager::RemoveDeadBindings now take a GRState* argument instead of a Store. This allows them to use the GDM for storing other data. llvm-svn: 60570
-
- Nov 12, 2008
-
-
Ted Kremenek authored
- Rename SetSVal to BindLoc - Add BindDecl - Add BindExpr GRState: - Environment now binds to Stmt* instead of Expr*. This is needed for processing ObjCForCollectionStmt (essentially the declaration of the the 'element' variable can have an SVal attached to it). - BindDecl no longer accepts Expr* for the initialization value; use SVal* instead. llvm-svn: 59152
-
- Nov 07, 2008
-
-
Zhongxing Xu authored
available, things get much simplified. One addition is that CompoundLiteralExpr can appear both in rvalue and lvalue context. llvm-svn: 58837
-
- Nov 03, 2008
-
-
Zhongxing Xu authored
llvm-svn: 58596
-
- Oct 30, 2008
-
-
Zhongxing Xu authored
- SetSVal(GRState*, Loc, SVal) => BindLoc - SetSVal(GRState*, Expr*, SVal) => BindExpr llvm-svn: 58421
-
- Oct 29, 2008
-
-
Zhongxing Xu authored
BindDecl better describes what the function does: - Bind the VarDecl to its memory region - Bind the memory region to some initial value. llvm-svn: 58359
-
- Oct 27, 2008
-
-
Ted Kremenek authored
- GRExprEngine::VisitCompoundLiteral... (1) visits the initializer list (generating ExplodedNodes) (2) creates a CompoundMemRegion for the literal (3) creates a new state with the bound literal values using GRStateManager::BindCompoundLiteral - GRStateManager::BindCompoundLiteral simply calls StoreManager::BindCompoundLiteral to get a new store and returns a persistent GRState with that store. - BasicStore::BindCompoundLiteral simply returns the same store, as it doesn't handle field sensitivity - RegionStore::BindCompoundLiteral currently fires an assert (pending discussion of how to best implement mappings for CompoundLiteralRegion). llvm-svn: 58277
-
- Oct 21, 2008
-
-
Zhongxing Xu authored
llvm-svn: 57896
-
- Oct 17, 2008
-
-
Zhongxing Xu authored
RVal => SVal LVal => Loc NonLVal => NonLoc lval => loc nonlval => nonloc llvm-svn: 57671
-
- Oct 16, 2008
-
-
Zhongxing Xu authored
new VisitLValue method is added to replace the old VisitLVal. The semantics model becomes more explicit to separate rvalue evaluation from lvalue evaluation. llvm-svn: 57627
-
- Oct 05, 2008
-
-
Zhongxing Xu authored
llvm-svn: 57107
-
- Oct 04, 2008
-
-
Ted Kremenek authored
This is a big patch, but the functionality change is small and the rest of the patch consists of deltas due to API changes. This patch overhauls the "memory region" abstraction that was prototyped (but never really used) as part of the Store.h. This patch adds MemRegion.h and MemRegion.cpp, which defines the class MemRegion and its subclasses. This classes serve to define an abstract representation of memory, with regions being layered on other regions to to capture the relationships between fields and variables, variables and the address space they are allocated in, and so on. The main motivation of this patch is that key parts of the analyzer assumed that all value bindings were to VarDecls. In the future this won't be the case, and this patch removes lval::DeclVal and replaces it with lval::MemRegionVal. Now all pieces of the analyzer must reason about abstract memory blocks instead of just variables. There should be no functionality change from this patch, but it opens the door for significant improvements to the analyzer such as field-sensitivity and object-sensitivity, both which were on hold until the memory abstraction got generalized. The memory region abstraction also allows type-information to literally be affixed to a memory region. This will allow the some now redundant logic to be removed from the retain/release checker. llvm-svn: 57042
-
- Sep 19, 2008
-
-
Ted Kremenek authored
Implement second part of PR 2600: NSError** parameter may be null, and should be checked before being dereferenced. llvm-svn: 56318
-
- Sep 13, 2008
-
-
Ted Kremenek authored
"Here is a patch what replaces std::ostream with llvm::raw_ostream. This patch covers the AST library, but ignores Analysis lib." llvm-svn: 56185
-
- Aug 29, 2008
-
-
Zhongxing Xu authored
llvm-svn: 55536
-
- Aug 28, 2008
-
-
Ted Kremenek authored
llvm-svn: 55448
-
- Aug 27, 2008
-
-
Zhongxing Xu authored
llvm-svn: 55412
-
- Aug 24, 2008
-
-
Chris Lattner authored
an APInt directly to an ostream now, so add some hacks. It would be better to switch all of the bugreport (and friends) stuff over to raw_ostream. llvm-svn: 55264
-
- Aug 23, 2008
-
-
Ted Kremenek authored
llvm-svn: 55213
-
- Aug 22, 2008
-
-
Zhongxing Xu authored
llvm-svn: 55144
-
- Aug 20, 2008
-
-
Ted Kremenek authored
This patch moves some code in GRStateManager::RemoveDeadBindings() to EnvironmentManager::RemoveDeadBindings(). llvm-svn: 55064
-
Ted Kremenek authored
llvm-svn: 55060
-
Ted Kremenek authored
llvm-svn: 55013
-
- Aug 19, 2008
-
-
Ted Kremenek authored
This patch extends BasicStoreManager::getInitialStore() to include code that symbolicates input variables. It also removes redundant handling of ImplicitParamDecl, since it is a subclass of VarDecl. llvm-svn: 54993
-
- Aug 17, 2008
-
-
Chris Lattner authored
llvm-svn: 54874
-
Ted Kremenek authored
Migrate GRState::ConstEqTy (map used from tracking constants for symbols) to use the generic data map instead. llvm-svn: 54860
-
Ted Kremenek authored
Added GRStateTrait.h, which includes boilerplate code for creating specializations of GRStateTrait<>. Modified GRStateTrait<ConstNotEq> in GRState to use the boilerplate in GRStateTrait<> for ImmutableMaps. llvm-svn: 54859
-
- Aug 16, 2008
-
-
Ted Kremenek authored
- Remove ConstNotEq from GRState/GRStateManager (!= tracking uses GDM instead). - GRStateManager now can book-keep "contexts" (e.g., factory objects) for uses with data elements stored into the GDM. - Refactor pretty-printing of states to use GRState::Printer objects exclusively. This removed a huge amount of pretty-printing logic from GRExprEngine. CFRefCount - Simplified some API calls based on refinements to the GDM api. llvm-svn: 54835
-
- Aug 14, 2008
-
-
Ted Kremenek authored
of using CheckerState). Removed CheckerState from GRState. Added class GRStateRef which wraps GRState* and GRStateManager*. This is handy for generating new states with a single handle. Added member template set/get functions to GRStateRef/GRState/GRStateManager for accessing the Generic Data Map. llvm-svn: 54788
-
- Aug 13, 2008
-
-
Ted Kremenek authored
Updated checker state printer interface to allow transfer functions to return an arbitrary number of GRState::Printers. llvm-svn: 54762
-
Ted Kremenek authored
Rename ValueState.cpp -> GRState.cpp llvm-svn: 54722
-
Ted Kremenek authored
Rename ValueStateManager -> GRStateManager. llvm-svn: 54721
-
- Aug 12, 2008
-
-
Ted Kremenek authored
llvm-svn: 54704
-
- Aug 08, 2008
-
-
Ted Kremenek authored
Added AssumeSymGT, AssumeSymGE, AssumeSymLT, AssumeSymLE to add some minor improvements to path-sensitivity. Right now we basically treat 'x > y' and 'x < y' as implying 'x != y', but this restriction will only inevitably apply to our must rudimentary value tracking component (we'll implement more advanced value reasoning later). llvm-svn: 54493
-
- Jul 22, 2008
-
-
Ted Kremenek authored
This implements <rdar://problem/6069935> llvm-svn: 53891
-
- Jul 18, 2008
-
-
Ted Kremenek authored
llvm-svn: 53743
-
- Jul 17, 2008
-
-
Ted Kremenek authored
Moved RemoveDeadBindings logic for the contents of 'Store' to a virtual RemoveDeadBindings method in StoreManager. llvm-svn: 53726
-