summaryrefslogtreecommitdiffstats
path: root/clang/lib/Analysis/GRCoreEngine.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Refactored most of the "Store" piece of ValueState into a Store type. TheTed Kremenek2008-07-101-8/+10
| | | | | | | | | 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
* Modified the dead stores checker to...Ted Kremenek2008-06-201-13/+0
| | | | | | | | | | | | | | | | | 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
* Added a new ProgramPoint: PostPurgeDeadSymbols. This new program point ↵Ted Kremenek2008-06-181-2/+20
| | | | | | 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
* Major rewrite/refactoring of static analysis engine. We now useTed Kremenek2008-04-291-4/+7
| | | | | | | | | | | | 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
* Fixed more caching bugs related to the one fixed in r49914. SilenceTed Kremenek2008-04-181-3/+1
| | | | | | compiler warning introduced by a recent patch of mine. llvm-svn: 49917
* Fixed bug in GREndPathNodeBuilder: only return a node if it wasn't in the ↵Ted Kremenek2008-04-181-1/+2
| | | | | | node cache. llvm-svn: 49907
* Bug fix in GREndPathNodeBuilderImpl: Use the specified state to constructTed Kremenek2008-04-161-1/+1
| | | | | | a node, not the state of the predecessor. llvm-svn: 49823
* Added "GREndPathNodeBuilder", a new node builder that will be used forTed Kremenek2008-04-111-9/+27
| | | | | | evaluating transfer functions at the end-of-path. llvm-svn: 49561
* Make a major restructuring of the clang tree: introduce a top-levelChris Lattner2008-03-151-0/+444
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
OpenPOWER on IntegriCloud