- Apr 11, 2009
-
-
Ted Kremenek authored
ProgramPoints all the way through to GRCoreEngine. NSString.m now fails with RegionStoreManager because of the void** cast. Disabling use of region store for that test for now. llvm-svn: 68845
-
- Apr 10, 2009
-
-
Ted Kremenek authored
llvm-svn: 68800
-
Zhongxing Xu authored
A CodeTextRegion wraps two kinds of data: FunctionDecl* or SymbolRef. The latter comes from the symbolic function pointer that are generated from function calls or input data. llvm-svn: 68777
-
Zhongxing Xu authored
llvm-svn: 68771
-
Ted Kremenek authored
- Pull SVal::GetConjuredSymbol() and friends into ValueManager. This greatly simplifies the calling interface to clients. llvm-svn: 68731
-
- Apr 09, 2009
-
-
Ted Kremenek authored
llvm-svn: 68711
-
Zhongxing Xu authored
llvm-svn: 68703
-
Zhongxing Xu authored
type of the expression where we create the symbol. llvm-svn: 68692
-
Zhongxing Xu authored
to eliminate the use of loc::SymbolVal. llvm-svn: 68685
-
- Apr 08, 2009
-
-
Ted Kremenek authored
Enhance analyzer reasoning about sending messages to nil. A nil receiver returns 0 for scalars of size <= sizeof(void*). llvm-svn: 68629
-
- Apr 03, 2009
-
-
Zhongxing Xu authored
when creating symbolic values, we distinguish between location and non-location values. For location values, we create a symbolic region instead of a loc::SymbolVal. llvm-svn: 68373
-
- Mar 30, 2009
-
-
Ted Kremenek authored
llvm-svn: 68063
-
- Mar 26, 2009
-
-
Ted Kremenek authored
Zhongxing and I discussed by email. Main changes: - Removed SymIntConstraintVal and SymIntConstraint - Added SymExpr as a parent class to SymbolData, SymSymExpr, SymIntExpr - Added nonloc::SymExprVal to wrap SymExpr - SymbolRef is now just a typedef of 'const SymbolData*' - Bunch of minor code cleanups in how some methods were invoked (no functionality change) This changes are part of a long-term plan to have full symbolic expression trees. This will be useful for lazily evaluating complicated expressions. llvm-svn: 67731
-
- Mar 25, 2009
-
-
Zhongxing Xu authored
representing symbolic expressions like 'x'+3 and 'x'+'y'. The design is subjected to change later when we fix the class hierarchy of symbolic expressions. llvm-svn: 67678
-
- Mar 20, 2009
-
-
Ted Kremenek authored
- Conjure symbols at '--' and '++' unary operations - Add utility method SVal::GetConjuredSymbolVal() and constify some arguments along the way. llvm-svn: 67395
-
- Mar 18, 2009
-
-
rdar://problem/6695527Ted Kremenek authored
SVal::GetRValueSymbolVal do the checking if we can symbolicate a type instead of having BasicStoreManager do it (which wasn't always doing the check consistently). Having this check in SVal::GetRValueSymbolVal keeps the check in one centralized place. llvm-svn: 67245
-
- Mar 10, 2009
-
-
Daniel Dunbar authored
llvm-svn: 66555
-
- Mar 03, 2009
-
-
Ted Kremenek authored
SVal::getAsLocSymbol(). This simplifies the code and allows the retain/release checker to (I believe) also correctly reason about location symbols wrapped in SymbolicRegions. Along the way I cleaned up SymbolRef a little, disallowing implicit casts to 'unsigned'. llvm-svn: 65972
-
Ted Kremenek authored
llvm-svn: 65956
-
- Jan 30, 2009
-
-
Ted Kremenek authored
- NonLoc::MakeVal() would use sizeof(unsigned) (literally) instead of consulting ASTContext for the size (in bits) of 'int'. While it worked, it was a conflation of concepts and using ASTContext.IntTy is 100% correct. - RegionStore::getSizeInElements() no longer assumes that a VarRegion has the type "ConstantArray", and handles the case when uses use ordinary variables as if they were arrays. - Fixed ElementRegion::getRValueType() to just return the rvalue type of its "array region" in the case the array didn't have ArrayType. - All of this fixes <rdar://problem/6541136> llvm-svn: 63347
-
- 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
-