- 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
-
- Jul 11, 2008
-
-
Ted Kremenek authored
current store implementation is now encapsulated by BasicStore. These changes prompted some long due constification of ValueState. Much of the diffs in this patch include adding "const" qualifiers. llvm-svn: 53423
-
- Jul 10, 2008
-
-
Ted Kremenek authored
llvm-svn: 53412
-
- Jul 08, 2008
-
-
Ted Kremenek authored
Constraints. These concepts are already present in the current ValueState, but the implementation is monolothic. Making ValueState more modular opens up new design choices for customizing the analysis engine. In the context of the analysis engine, the "Environment" is the binding between Expr* (expressions) and intermediate symbolic values (RValues). llvm-svn: 53252
-
- Jul 07, 2008
-
-
Ted Kremenek authored
llvm-svn: 53172
-
- May 01, 2008
-
-
Ted Kremenek authored
Correctly invalidate reference count state when passing objects by reference in message expressions we don't understand. llvm-svn: 50541
-
- Apr 30, 2008
-
-
Ted Kremenek authored
llvm-svn: 50458
-
Ted Kremenek authored
llvm-svn: 50453
-
Ted Kremenek authored
This removes the failure in null-deref-ps.c (test suite). llvm-svn: 50449
-
- Apr 29, 2008
-
-
Ted Kremenek authored
EvalStore/EvalLoad to handle all loads/stores from symbolic memory, allowing us to do checks for null dereferences, etc., at any arbitrary load/store (these were missed checks before). This also resulted in some major cleanups, some conceptual, and others just in the structure of the code. This temporarily introduces a regression in the test suite (null-deref-ps.c) before I add a new LVal type for structure fields. llvm-svn: 50443
-