- Jan 22, 2009
-
-
Ted Kremenek authored
their associated APIs. We no longer need separate SymbolData objects for fields, variables, etc. Instead, we now associated symbols with the "rvalue" of a MemRegion (i.e., the value stored at that region). Now we only have two kinds of SymbolData objects: SymbolRegionRValue and SymbolConjured. This cleanup also makes the distinction between a SymbolicRegion and a symbolic value that is a location much clearer. A SymbolicRegion represents a chunk of symbolic memory, while a symbolic location is just a "pointer" with different possible values. Without any specific knowledge, a symbolic location resolves (i.e., via a dereference) to a SymbolicRegion. In the future, when we do better alias reasoning, a symbolic location can become an alias for another location, thus merging the constraints on the referred SymbolicRegion with the other region. llvm-svn: 62769
-
- 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 09, 2008
-
-
Zhongxing Xu authored
llvm-svn: 60758
-
- 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
-
- Nov 24, 2008
-
-
Zhongxing Xu authored
llvm-svn: 59956
-
Zhongxing Xu authored
llvm-svn: 59930
-
- Nov 22, 2008
-
-
Zhongxing Xu authored
ConcreteInt index for now. llvm-svn: 59869
-
- Nov 19, 2008
-
-
Zhongxing Xu authored
llvm-svn: 59618
-
- Nov 15, 2008
-
-
Ted Kremenek authored
llvm-svn: 59334
-
- Oct 30, 2008
-
-
Ted Kremenek authored
Pretty-printing for SVals now mainly uses llvm::raw_ostream. We have an adapter for std::ostream, but this will be removed in the future. llvm-svn: 58445
-
Ted Kremenek authored
Added pretty-printing for nonloc::CompoundSVal. llvm-svn: 58442
-
Ted Kremenek authored
llvm-svn: 58441
-
Ted Kremenek authored
CompoundVal now uses an ImmutableList<SVal> to store its set of SVals. This change was motivated by the need to allow state-splitting in GRExprEngine::VisitInitListExpr. As a side-benefit, we no longer need to perform any copies of SVals when creating a CompoundSVal, and the profiling of CompoundSVal is now constant time. llvm-svn: 58437
-
Zhongxing Xu authored
llvm-svn: 58418
-
- Oct 28, 2008
-
-
Ted Kremenek authored
- Add symbol_iterator support for SymbolicRegions. llvm-svn: 58300
-
- Oct 26, 2008
-
-
Zhongxing Xu authored
llvm-svn: 58182
-
- Oct 24, 2008
-
-
Zhongxing Xu authored
llvm-svn: 58073
-
- Oct 21, 2008
-
-
Zhongxing Xu authored
RValues.h/cpp => SVals.h/cpp llvm-svn: 57893
-
- Oct 17, 2008
-
-
Zhongxing Xu authored
RVal => SVal LVal => Loc NonLVal => NonLoc lval => loc nonlval => nonloc llvm-svn: 57671
-
Ted Kremenek authored
Remove GRExprEngine::getLVal and RValues::MakeVal. Enhance StoreManager "GetLValue" methods to dispatch for specific kinds of lvalue queries, as opposed to interogating the expression tree (GRExprEngine already does this). Added FIXMEs. In particular, we no longer "assume" that a base pointer in a field/array access is null (this logic was removed). Perhaps we should do this when fetching the lvalue for fields and array elements? llvm-svn: 57657
-
- 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 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
-
- Oct 01, 2008
-
-
Ted Kremenek authored
llvm-svn: 56912
-
- 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 17, 2008
-
-
Chris Lattner authored
llvm-svn: 54874
-
- Aug 11, 2008
-
-
Daniel Dunbar authored
- Drop {Decl.h,DeclObjC.h,IdentifierTable.h} from Expr.h - Moved Sema::getCurMethodDecl() out of line (dependent on ObjCMethodDecl via dyn_cast). llvm-svn: 54629
-
- Jul 18, 2008
-
-
Ted Kremenek authored
llvm-svn: 53754
-
Ted Kremenek authored
llvm-svn: 53753
-
- May 01, 2008
-
-
Ted Kremenek authored
llvm-svn: 50503
-
- Apr 30, 2008
-
-
Ted Kremenek authored
llvm-svn: 50453
-
Ted Kremenek authored
This removes the failure in null-deref-ps.c (test suite). llvm-svn: 50449
-
- Apr 22, 2008
-
-
Ted Kremenek authored
llvm-svn: 50109
-
Ted Kremenek authored
Added "nonlval::LValAsInteger" to represent abstract LVals casted to integers, allowing us to track lvals when they are casted back to pointers. llvm-svn: 50108
-
- Apr 02, 2008
-
-
Chris Lattner authored
llvm-svn: 49101
-
- Mar 16, 2008
-
-
Chris Lattner authored
lib dir and move all the libraries into it. This follows the main llvm tree, and allows the libraries to be built in parallel. The top level now enforces that all the libs are built before Driver, but we don't care what order the libs are built in. This speeds up parallel builds, particularly incremental ones. llvm-svn: 48402
-
- Mar 09, 2008
-
-
Ted Kremenek authored
Bug fix: Don't call RemoveDeadBindings more than once (can kill newly generated values to Block-Level Expressions). llvm-svn: 48079
-
- Mar 07, 2008
-
-
Ted Kremenek authored
llvm-svn: 48025
-
- Mar 06, 2008
-
-
Gabor Greif authored
llvm-svn: 47995
-
- Mar 05, 2008
-
-
Chris Lattner authored
llvm-svn: 47954
-
- Feb 28, 2008
-
-
Ted Kremenek authored
This current implementation only works when both operands are concrete values; later we will add support for symbolic values. llvm-svn: 47726
-