| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 74419
|
| |
|
|
|
|
| |
handled by RetrieveArray().
llvm-svn: 74409
|
| |
|
|
|
|
| |
symbol.
llvm-svn: 74408
|
| |
|
|
| |
llvm-svn: 74407
|
| |
|
|
|
|
| |
memregion.
llvm-svn: 74406
|
| |
|
|
| |
llvm-svn: 74361
|
| |
|
|
| |
llvm-svn: 74245
|
| |
|
|
| |
llvm-svn: 74244
|
| |
|
|
| |
llvm-svn: 74238
|
| |
|
|
| |
llvm-svn: 74231
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
GRTransferFuncs had the conflated role of both constructing SVals (symbolic
expressions) as well as handling checker-specific logic. Now SValuator has the
role of constructing SVals from expressions and GRTransferFuncs just handles
checker-specific logic. The motivation is by separating these two concepts we
will be able to much more easily create richer constraint-generating logic
without coupling it to the main checker transfer function logic.
We now have one implementation of SValuator: SimpleSValuator.
SimpleSValuator is essentially the SVal-related logic that was in GRSimpleVals
(which is removed in this patch). This includes the logic for EvalBinOp,
EvalCast, etc. Because SValuator has a narrower role than the old
GRTransferFuncs, the interfaces are much simpler, and so is the implementation
of SimpleSValuator compared to GRSimpleVals. I also did a line-by-line review of
SVal-related logic in GRSimpleVals and cleaned it up while moving it over to
SimpleSValuator.
As a consequence of removing GRSimpleVals, there is no longer a
'-checker-simple' option. The '-checker-cfref' did everything that option did
but also ran the retain/release checker. Of course a user may not always wish to
run the retain/release checker, nor do we wish core analysis logic buried in the
checker-specific logic. The next step is to refactor the logic in CFRefCount.cpp
to separate out these pieces into the core analysis engine.
llvm-svn: 74229
|
| |
|
|
| |
llvm-svn: 74182
|
| |
|
|
| |
llvm-svn: 74168
|
| |
|
|
| |
llvm-svn: 74166
|
| |
|
|
|
|
| |
Revert to setting default value approach for handling struct initialization.
llvm-svn: 74160
|
| |
|
|
| |
llvm-svn: 74136
|
| |
|
|
| |
llvm-svn: 74128
|
| |
|
|
| |
llvm-svn: 74085
|
| |
|
|
| |
llvm-svn: 74047
|
| |
|
|
| |
llvm-svn: 74043
|
| |
|
|
| |
llvm-svn: 74006
|
| |
|
|
| |
llvm-svn: 73996
|
| |
|
|
| |
llvm-svn: 73995
|
| |
|
|
|
|
|
|
|
|
| |
- Change implementation of MemRegion::hasStackStorage()/hasHeapStorage() to use
'getMemorySpace()'. This avoids a double traversal up the region hierarchy
and is simpler.
- Add MemRegion::hasHeapOrStackStorage() as a slightly more efficient
alternative to 'hasStackStorage() || hasHeapStorage()'.
llvm-svn: 73977
|
| |
|
|
|
|
| |
MemRegion.
llvm-svn: 73973
|
| |
|
|
| |
llvm-svn: 73968
|
| |
|
|
| |
llvm-svn: 73958
|
| |
|
|
| |
llvm-svn: 73954
|
| |
|
|
|
|
| |
No functionality change.
llvm-svn: 73952
|
| |
|
|
|
|
| |
Clean up code with ValueManager.
llvm-svn: 73951
|
| |
|
|
|
|
| |
explicitly. Make 0 value with the field type.
llvm-svn: 73949
|
| |
|
|
|
|
| |
array elements to 0 explicitly. Create 0 values with the element type.
llvm-svn: 73946
|
| |
|
|
|
|
| |
trait-based MemRegion creation.
llvm-svn: 73941
|
| |
|
|
| |
llvm-svn: 73940
|
| |
|
|
| |
llvm-svn: 73939
|
| |
|
|
|
|
|
|
| |
- Embed a reference to MemRegionManager objects in MemSpaceRegion objects
- Use this embedded reference for MemRegion objects to access ASTContext objects without external help
- Use this access to ASTContext to simplify 'isBoundable' (no ASTContext& argument required)
llvm-svn: 73935
|
| |
|
|
|
|
| |
trait-based MemRegion creation.
llvm-svn: 73927
|
| |
|
|
|
|
| |
the new trait-based construction of MemRegion objects.
llvm-svn: 73926
|
| |
|
|
|
|
| |
new generalized region-construction code.
llvm-svn: 73921
|
| |
|
|
|
|
|
|
| |
member template functions and traits. The idea is to allow MemRegionManager to
construct subclasses of MemRegion that aren't declared in MemRegion.h (e.g.,
checker-specific regions).
llvm-svn: 73917
|
| |
|
|
| |
llvm-svn: 73880
|
| |
|
|
| |
llvm-svn: 73851
|
| |
|
|
|
|
|
| |
preferring to use their replacements in GRState. This further unifies the code
paths for such logic and leads to some code reduction.
llvm-svn: 73771
|
| |
|
|
|
|
|
| |
because the type of the symbol is used to create the default range. We need the
sign to be consistent.
llvm-svn: 73756
|
| |
|
|
|
|
| |
ElementRegion.
llvm-svn: 73754
|
| |
|
|
|
|
| |
GRState->bindXXX and friends (and constify some arguments along the way).
llvm-svn: 73740
|
| |
|
|
| |
llvm-svn: 73735
|
| |
|
|
|
|
|
|
|
| |
- Remove the 'isFeasible' flag from all uses of 'Assume'.
- Remove the 'Assume' methods from GRStateManager. Now the only way to
create a new GRState with an assumption is to use the new 'assume' methods
in GRState.
llvm-svn: 73731
|
| |
|
|
| |
llvm-svn: 73702
|
| |
|
|
|
|
|
|
|
| |
type.
When retrieving the region value, if we are going to create a symbol value, use
the cast-to type if possible.
llvm-svn: 73690
|