summaryrefslogtreecommitdiffstats
path: root/clang/lib/Analysis/ValueState.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Rename ValueState.h -> GRState.hTed Kremenek2008-08-131-575/+0
| | | | | | Rename ValueState.cpp -> GRState.cpp llvm-svn: 54722
* Rename ValueState -> GRState.Ted Kremenek2008-08-131-50/+50
| | | | | | Rename ValueStateManager -> GRStateManager. llvm-svn: 54721
* Added GenericDataMap as a component of ValueState.Ted Kremenek2008-08-121-0/+1
| | | | llvm-svn: 54704
* Added AssumeSymGT, AssumeSymGE, AssumeSymLT, AssumeSymLE to add some minor ↵Ted Kremenek2008-08-071-26/+94
| | | | | | improvements to path-sensitivity. Right now we basically treat 'x > y' and 'x < y' as implying 'x != y', but this restriction will only inevitably apply to our must rudimentary value tracking component (we'll implement more advanced value reasoning later). llvm-svn: 54493
* Added path-sensitive checking for null pointer values passed to function ↵Ted Kremenek2008-07-221-0/+38
| | | | | | | | arguments marked nonnull. This implements <rdar://problem/6069935> llvm-svn: 53891
* Move GRTransferFunc* into ValueStateManager, and move the assumption logic ↵Ted Kremenek2008-07-171-0/+172
| | | | | | there as well. llvm-svn: 53743
* Moved RemoveDeadBindings logic for the contents of 'Store' to a virtual ↵Ted Kremenek2008-07-171-68/+18
| | | | | | RemoveDeadBindings method in StoreManager. llvm-svn: 53726
* Refactored most of the "Store" piece of ValueState into a Store type. TheTed Kremenek2008-07-101-121/+30
| | | | | | | | | 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
* Move some environment methods from ValueState/ValueStateManager to ↵Ted Kremenek2008-07-101-119/+0
| | | | | | Environment/EnvironmentManager. llvm-svn: 53412
* Initial work on splitting the ValueState into an Environment, Store, andTed Kremenek2008-07-081-25/+16
| | | | | | | | | | | Constraints. These concepts are already present in the current ValueState, but the implementation is monolothic. Making ValueState more modular opens up new design choices for customizing the analysis engine. In the context of the analysis engine, the "Environment" is the binding between Expr* (expressions) and intermediate symbolic values (RValues). llvm-svn: 53252
* Updated clients of ImmutableMap::SlimFind to use ImmutableMap::lookup instead.Ted Kremenek2008-07-071-15/+15
| | | | llvm-svn: 53172
* Correctly invalidate reference count state when passing objects by reference ↵Ted Kremenek2008-05-011-0/+6
| | | | | | in message expressions we don't understand. llvm-svn: 50541
* Simplify RemoveDeadBindings.Ted Kremenek2008-04-291-17/+9
| | | | llvm-svn: 50458
* Add lval::ArrayOffset, which represent the locations of entries in an array.Ted Kremenek2008-04-291-0/+1
| | | | llvm-svn: 50453
* Added lval::FieldOffset, which represents symbolic lvalues for field offsets ↵Ted Kremenek2008-04-291-0/+3
| | | | | | | | from other Lvalues. This removes the failure in null-deref-ps.c (test suite). llvm-svn: 50449
* Major rewrite/refactoring of static analysis engine. We now useTed Kremenek2008-04-291-56/+0
| | | | | | | | | | | | 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
* Handle dereferences of function pointers (which return a handle to the ↵Ted Kremenek2008-04-251-0/+3
| | | | | | function). llvm-svn: 50246
* Don't abort on GetRVal when the LVal is a StringLiteralVal.Ted Kremenek2008-04-251-0/+4
| | | | llvm-svn: 50245
* Do a better job at computing dead symbols.Ted Kremenek2008-04-251-4/+12
| | | | | | | | | Implemented support for better localized leaks in the CF reference count checker. Now leaks should be flagged close to where they occur. This should implement the desired functionality in <rdar://problem/5879592>, although the diagnostics still need to be improved. llvm-svn: 50241
* Added initial boilerplate in GRExprEngine to allow checker-specific transferTed Kremenek2008-04-241-7/+23
| | | | | | function logic to act when symbols become dead. llvm-svn: 50221
* Added lval type (and tracking) for StringLiterals.Ted Kremenek2008-04-221-0/+3
| | | | llvm-svn: 50109
* Added "nonlval::LValAsInteger" to represent abstract LVals casted to ↵Ted Kremenek2008-04-221-11/+1
| | | | | | integers, allowing us to track lvals when they are casted back to pointers. llvm-svn: 50108
* Make a major restructuring of the clang tree: introduce a top-levelChris Lattner2008-03-151-0/+595
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