| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
| |
Educate GRExprEngine::VisitGraph() about 'PreStmt'.
Mark the constructor of 'PostStmt' to be explicit, preventing implicit
conversions and the selection of the wrong 'generateNode' method in
GRStmtNodeBuilder.
Constify a bunch of arguments, which falls out of the changes to ProgramPoint.
llvm-svn: 76809
|
| |
|
|
| |
llvm-svn: 76792
|
| |
|
|
|
|
|
|
| |
where the true or false CFGBlock* for a branch could be NULL. This will handle
the case where we can determine during CFG construction that a branch is
infeasible.
llvm-svn: 76450
|
| |
|
|
| |
llvm-svn: 75761
|
| |
|
|
|
|
| |
now until ready).
llvm-svn: 71303
|
| |
|
|
| |
llvm-svn: 71280
|
| |
|
|
|
|
|
| |
analysis introspection) when we computed an lvalue. This shouldn't
effect the current analysis results in any way.
llvm-svn: 71169
|
| |
|
|
|
|
| |
GRCoreEngine. This tends to result in shorter paths for pathological cases.
llvm-svn: 70585
|
| |
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
| |
PostStmt program point. This allows clients to pass in PostStmtCustom program
points.
llvm-svn: 65080
|
| |
|
|
|
|
|
|
| |
- one queue (FIFO) to queue up nodes at block entrances
- another queue (LIFO) to queue up other nodes
- The idea is to explore basic blocks to completion, but to do a BFS exploration of blocks.
llvm-svn: 61106
|
| |
|
|
|
|
|
|
| |
Still need to flesh out some logic.
When processing DeclStmt, use the new interface to StateManager::BindDecl. Conjuring of symbols is now done in VisitDeclStmt.
llvm-svn: 59155
|
| |
|
|
|
|
| |
PostStmtKind was used instead of a PostStoreKind.
llvm-svn: 57719
|
| |
|
|
|
|
|
|
|
| |
motivated because it became clear that the number of subclasses of ProgramPoint
would expand and we ran out of bits to represent a pointer variant. As a plus of
this change, BlockEdge program points can now be represented explicitly without
using a cache of CFGBlock* pairs in CFG.
llvm-svn: 56245
|
| |
|
|
| |
llvm-svn: 55392
|
| |
|
|
|
|
| |
GRCoreEngineImpl.
llvm-svn: 54714
|
| |
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1) Check if a dead store appears as a subexpression. For such cases, we emit
a verbose diagnostic so that users aren't confused. This addresses:
<rdar://problem/5968508> checker gives misleading report for dead store in loop
2) Don't emit a dead store warning when assigning a null value to a pointer.
This is a common form of defensive programming. We may wish to make
this an option to the the checker one day.
This addresses the feature request in the following email:
http://lists.cs.uiuc.edu/pipermail/cfe-dev/2008-June/001978.html
llvm-svn: 52555
|
| |
|
|
|
|
| |
distinguishes between the cases when we just evaluated the transfer function of a Stmt* (PostStmt) or performed a load (PostLoad). This solves a caching bug observed in a recent bug report.
llvm-svn: 52443
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
compiler warning introduced by a recent patch of mine.
llvm-svn: 49917
|
| |
|
|
|
|
| |
node cache.
llvm-svn: 49907
|
| |
|
|
|
|
| |
a node, not the state of the predecessor.
llvm-svn: 49823
|
| |
|
|
|
|
| |
evaluating transfer functions at the end-of-path.
llvm-svn: 49561
|
|
|
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
|