| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 65956
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- 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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
| |
llvm-svn: 60758
|
|
|
|
|
|
| |
the representation of symbolic values.
llvm-svn: 60575
|
|
|
|
| |
llvm-svn: 59956
|
|
|
|
| |
llvm-svn: 59930
|
|
|
|
|
|
| |
ConcreteInt index for now.
llvm-svn: 59869
|
|
|
|
| |
llvm-svn: 59618
|
|
|
|
| |
llvm-svn: 59334
|
|
|
|
|
|
| |
adapter for std::ostream, but this will be removed in the future.
llvm-svn: 58445
|
|
|
|
|
|
| |
Added pretty-printing for nonloc::CompoundSVal.
llvm-svn: 58442
|
|
|
|
| |
llvm-svn: 58441
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 58418
|
|
|
|
|
|
|
|
| |
symbol_iterator.
- Add symbol_iterator support for SymbolicRegions.
llvm-svn: 58300
|
|
|
|
|
|
| |
the Store.
llvm-svn: 58182
|
|
|
|
| |
llvm-svn: 58073
|
|
RValues.h/cpp => SVals.h/cpp
llvm-svn: 57893
|