- Jan 29, 2008
-
-
Ted Kremenek authored
llvm-svn: 46477
-
Ted Kremenek authored
Refactoring: for GREngine and GRConstants, pushed references to CFG, ASTContext, and the top-level FunctionDecl into ExplodedGraphImpl. llvm-svn: 46475
-
- Jan 28, 2008
-
-
Ted Kremenek authored
llvm-svn: 46471
-
Ted Kremenek authored
llvm-svn: 46470
-
Ted Kremenek authored
llvm-svn: 46468
-
Ted Kremenek authored
now SymbolicNonLValue. Cleaned up some casts. llvm-svn: 46467
-
Ted Kremenek authored
Renamed ExprValue to RValue, as all expression values are RValues, and this keeps with the C terminology (renamed old "RValue" class to "NonLValue"). Introduced "ConcreteInt", a class that represents a concrete, integer constant as an RValue. Temporarily removed classes to represent set of possible constants and set of != constants. Will replace with a more general class representing a set of constraints. Added some foundational code to track "symbolic" values, which are used to accrue constraints on an abstract value that is shared between multiple variables. e.g: x = y; // at this point "x" and "y" share the same "value" if (x > 1) ... // at this point, the value shared by "x" and "y" is "> 1". llvm-svn: 46466
-
- Jan 26, 2008
-
-
Ted Kremenek authored
Added back logic in patch r46361 (http://llvm.org/viewvc/llvm-project?rev=46361&view=rev) with the addition of some previously missing NULL pointer checks. Modified the UninitializedValues analysis to not expect that every Expr* at the block-level is a block-level expression (we probably need to change the name of such expressions to something truer to their meaning). llvm-svn: 46380
-
Ted Kremenek authored
llvm-svn: 46379
-
Ted Kremenek authored
a template-template parameter. llvm-svn: 46378
-
- Jan 25, 2008
-
-
Ted Kremenek authored
Renamed RValueConjunctiveUnequal to RValInequalityANDSet. Refactored add/subtract/multiple (and now divide) operations for RValEqualityORSet to be based on a single template function. llvm-svn: 46374
-
Ted Kremenek authored
llvm-svn: 46370
-
Ted Kremenek authored
llvm-svn: 46368
-
Ted Kremenek authored
information is not separated into a "base" and "sub" type. Eventually the value-tracking logic will know about LValues and RValues, but not about specialized LValues and RValues; separating the "kind" information into bits indicating whether an ExprValue is an LValue or an RValue from the bits that specify the actual value type makes this separation easier. llvm-svn: 46329
-
- Jan 24, 2008
-
-
Ted Kremenek authored
llvm-svn: 46327
-
Ted Kremenek authored
llvm-svn: 46326
-
Ted Kremenek authored
llvm-svn: 46323
-
Ted Kremenek authored
a Stmt* is a block-level expression when we INSERT a value into the map, and not also when we QUERY a value. llvm-svn: 46321
-
Ted Kremenek authored
the value map as if the expressions were non-block-level expressions. llvm-svn: 46319
-
Ted Kremenek authored
we falsely constructed an APInt to represent the constant '1' instead of using an APSInt (which has a sign). llvm-svn: 46317
-
Ted Kremenek authored
Added some workarounds for loss of signess information on some APSInt operations. Considering the best route to integrate these into APSInt directly. (FIXME's in GRConstants.cpp). llvm-svn: 46310
-
Ted Kremenek authored
llvm-svn: 46300
-
Ted Kremenek authored
Added initial support for integer casting operations to GRConstants. llvm-svn: 46298
-
Ted Kremenek authored
llvm-svn: 46294
-
Ted Kremenek authored
Added "multiplication" support for equality sets. llvm-svn: 46289
-
Ted Kremenek authored
llvm-svn: 46288
-
- Jan 23, 2008
-
-
Ted Kremenek authored
causing problems with Dot. llvm-svn: 46285
-
Ted Kremenek authored
llvm-svn: 46284
-
Ted Kremenek authored
abstract "L-values" and "R-values" when doing value tracking, and expanding constant tracking to encompass tracking disjunctive sets of possible constants. Further, the tree-walking is more efficient, as we don't blindly recurse the tree if we won't generate new states. llvm-svn: 46278
-
- Jan 18, 2008
-
-
Ted Kremenek authored
use ImmutableMap::SlimFind(), which returns the correct value. Added pruning of dead block-level expressions and Decls from our value map using liveness information. llvm-svn: 46154
-
Ted Kremenek authored
dead at an assignment without taking into account if the variable was used in the RHS of the assignment. llvm-svn: 46153
-
- Jan 17, 2008
-
-
Ted Kremenek authored
is because GNU-style Statement-expressions cause the last statement in the statement-expression to act like an expression. We now have two notions: block-level statements and block-level expressions. The former are all Stmt* that appear in the list of statements in CFGBlocks. The latter is the subset of the former; these block-level statements are used as subexpressions somewhere in the AST. CFG::isBlockExpr() returns true for the latter, not the former (previously isBlockExpr() always returned true for non-Expr Stmt*). Modified the LiveVariables analysis to also track liveness state for block-level expressions (using the updated definition of block-level expressions). Modified the dataflow solver so that when it records values for block-level statements, it records the dataflow value *before* the transfer function for a Stmt* is evaluated (not after). This is more in sync in what clients will want. Modified CFGStmtVisitor to record the current block-level statement. llvm-svn: 46143
-
Ted Kremenek authored
values for the block-level expressions. Modified 'LiveVariables' to provide the option to clients to record liveness information for block-level expressions (using the above feature). Modified 'DeadStores' to conform to the new interface of 'LiveVariables'. Modified 'GRConstants' to compute liveness information for block-level expressions. llvm-svn: 46137
-
Ted Kremenek authored
llvm-svn: 46133
-
Ted Kremenek authored
Refactored the use of this method into both the Sema module and Analysis module, which were using their own static functions that did the same thing. llvm-svn: 46129
-
Ted Kremenek authored
state. llvm-svn: 46106
-
Ted Kremenek authored
map. This will allow us to quickly prune them from maps without searching the entire map. llvm-svn: 46101
-
Ted Kremenek authored
to sort sub-expressions before Block-level expressions. llvm-svn: 46100
-
- Jan 16, 2008
-
-
Ted Kremenek authored
values are determined when evaluating the parent expression. llvm-svn: 46096
-
Ted Kremenek authored
constant propagation. llvm-svn: 46095
-