Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | Added preliminary transfer function support for references. | Ted Kremenek | 2008-03-04 | 2 | -4/+9 | |
| | | | | llvm-svn: 47912 | |||||
* | For the transfer function for CallExpr, invalidate all arguments | Ted Kremenek | 2008-03-04 | 1 | -19/+44 | |
| | | | | | | passed-by-reference to builtin functions until we have better builtin support. llvm-svn: 47910 | |||||
* | For the transfer function of DeclStmt, for now initialize the values of | Ted Kremenek | 2008-03-04 | 1 | -8/+13 | |
| | | | | | | structs (local variables) to Unknown instead of Undefined. (added FIXME to initialize *members* of struct to undefined) llvm-svn: 47901 | |||||
* | Implemented "print" method for ValueState. | Ted Kremenek | 2008-03-04 | 1 | -10/+16 | |
| | | | | llvm-svn: 47894 | |||||
* | Add transfer function support for the default initialization of static | Ted Kremenek | 2008-03-04 | 1 | -2/+28 | |
| | | | | | | variables that are pointers or integers. llvm-svn: 47880 | |||||
* | Fixed insidious state propagation bug that would sometimes cause the state | Ted Kremenek | 2008-03-04 | 1 | -6/+5 | |
| | | | | | | to bifurcate at the wrong places and not propagate at others. llvm-svn: 47876 | |||||
* | Enhanced pretty-printing of undefined-argument errors. | Ted Kremenek | 2008-03-04 | 2 | -9/+37 | |
| | | | | llvm-svn: 47873 | |||||
* | Fixed subtle caching bug in ExplodedGraph that would cause some nodes to | Ted Kremenek | 2008-03-03 | 1 | -16/+0 | |
| | | | | | | be incorrectly merged together. llvm-svn: 47851 | |||||
* | Added FIXME. | Ted Kremenek | 2008-03-03 | 1 | -6/+14 | |
| | | | | llvm-svn: 47842 | |||||
* | Added extra check for calls to functions where we pass undefined values | Ted Kremenek | 2008-02-29 | 2 | -4/+29 | |
| | | | | | | as arguments. llvm-svn: 47778 | |||||
* | Add checks for function calls via a function pointer that is NULL, Undefined, | Ted Kremenek | 2008-02-29 | 2 | -16/+17 | |
| | | | | | | or otherwise a constant integer value that doesn't evaluate to an address. llvm-svn: 47774 | |||||
* | "Refinement" of hack to bound loop-traversals: visit any block at a maximum ↵ | Ted Kremenek | 2008-02-29 | 2 | -46/+22 | |
| | | | | | | of 3 times along a given path. llvm-svn: 47766 | |||||
* | Added simple hack to reduce redundant warnings from the checker: | Ted Kremenek | 2008-02-28 | 1 | -0/+14 | |
| | | | | | | | | | Cache the location of the error. Don't emit the same warning for the same error type that occurs at the same program location but along a different path. llvm-svn: 47727 | |||||
* | Added checking for undefined results of '<<' and '>>' (shifting by too many ↵ | Ted Kremenek | 2008-02-28 | 4 | -29/+106 | |
| | | | | | | | | bits, etc.) This current implementation only works when both operands are concrete values; later we will add support for symbolic values. llvm-svn: 47726 | |||||
* | Merged ValueState and ValueStateImpl into just ValueState, with ↵ | Ted Kremenek | 2008-02-28 | 4 | -119/+114 | |
| | | | | | | GRExprEngine::StateTy just becoming ValueState*. llvm-svn: 47714 | |||||
* | Renamed "Uninitialized" -> "Undefined" in path-sensitive value tracking engine. | Ted Kremenek | 2008-02-28 | 4 | -75/+75 | |
| | | | | llvm-svn: 47713 | |||||
* | Fixed use of an uninitialized variable. | Ted Kremenek | 2008-02-27 | 1 | -1/+1 | |
| | | | | llvm-svn: 47691 | |||||
* | End paths when calling a function marked "noreturn." | Ted Kremenek | 2008-02-27 | 1 | -0/+15 | |
| | | | | llvm-svn: 47690 | |||||
* | Small tweaks to the transfer function for DeclStmt: do not mark external global | Ted Kremenek | 2008-02-27 | 1 | -5/+17 | |
| | | | | | | variables as uninitialized, and only "initialize" static function variables. llvm-svn: 47683 | |||||
* | Added string "[CHECKER]" to the output diagnostics produced by the ↵ | Ted Kremenek | 2008-02-27 | 1 | -0/+5 | |
| | | | | | | GRSimpleVals analysis. llvm-svn: 47678 | |||||
* | Small fix to VisitLVal: this method can be called on Block-Level expressions. | Ted Kremenek | 2008-02-27 | 1 | -2/+5 | |
| | | | | | | In such cases, handle them just like Visit(). llvm-svn: 47665 | |||||
* | When analyzing a function, eagerly create symbolic values for all | Ted Kremenek | 2008-02-27 | 2 | -31/+30 | |
| | | | | | | globals/parameters at the beginning of the analysis. llvm-svn: 47664 | |||||
* | Header file cleanups: reduce number of includes; move ValueState.h into ↵ | Ted Kremenek | 2008-02-27 | 4 | -281/+7 | |
| | | | | | | include directory tree. llvm-svn: 47661 | |||||
* | Similar bug fix to r47650; when processing CallExprs if we did not generate an | Ted Kremenek | 2008-02-27 | 1 | -0/+1 | |
| | | | | | | | ExplodedNode for the Callee subexpression we would not evaluate the CallExpr transfer function. llvm-svn: 47651 | |||||
* | Fixed bug in the core transfer function logic for CallExprs where we would | Ted Kremenek | 2008-02-27 | 1 | -0/+3 | |
| | | | | | | | sometimes skip evaluating all the arguments when some arguments would not create new ExplodedNodes. llvm-svn: 47650 | |||||
* | Fix bug when processing '?' operator: invalidate the old "Uninitialized" ↵ | Ted Kremenek | 2008-02-26 | 3 | -7/+26 | |
| | | | | | | value of the block-level expression for ?. llvm-svn: 47645 | |||||
* | Added boilerplate for plug-in transfer function support for CallExprs. | Ted Kremenek | 2008-02-26 | 2 | -0/+32 | |
| | | | | | | GRSimpleVals performs the following action: invalidate all values passed-by-reference. llvm-svn: 47638 | |||||
* | Don't emit divide-by-zero errors when we divide by an unknown (not | Ted Kremenek | 2008-02-26 | 1 | -45/+57 | |
| | | | | | | uninitialized) value. At this point we're just too imprecise. llvm-svn: 47636 | |||||
* | Removed static analysis-specific diagnostics from DiagnosticKinds.def. | Ted Kremenek | 2008-02-26 | 2 | -12/+48 | |
| | | | | | | | Use custom diagnostics for static analysis checkers. Added warnings for dereferencing uninitialized values and divide-by-zeroes. llvm-svn: 47626 | |||||
* | Removed hack with toggling the signedness flag of the APSInt stored | Ted Kremenek | 2008-02-26 | 1 | -9/+2 | |
| | | | | | | | | | in an EnumConstantDecl. This was made possible because of a recent fix in the parser: http://llvm.org/viewvc/llvm-project?rev=47581&view=rev llvm-svn: 47624 | |||||
* | Small fixes to shore up overhauling of transfer function logic for '&&' and '||. | Ted Kremenek | 2008-02-26 | 2 | -4/+15 | |
| | | | | llvm-svn: 47620 | |||||
* | optimization: no longer create ExplodedNodes for IntegerLiteral and | Ted Kremenek | 2008-02-26 | 2 | -30/+29 | |
| | | | | | | CharacterLiteral expressions. llvm-svn: 47617 | |||||
* | Major cleanup of the transfer function logic for '&&', '||', and '?'. We | Ted Kremenek | 2008-02-26 | 3 | -78/+134 | |
| | | | | | | | | now store in the state essentially which branch we took. This removes a bunch of bogus assumptions (and likely bugs), reduces the complexity of the implementation, and facilitates more optimizations. llvm-svn: 47613 | |||||
* | Fixed inverted condition. | Ted Kremenek | 2008-02-26 | 1 | -1/+1 | |
| | | | | llvm-svn: 47590 | |||||
* | Added lazy "symbolication" of parameter variables and global variables. | Ted Kremenek | 2008-02-26 | 4 | -15/+86 | |
| | | | | | | Added recording of divide-by-zero and divide-by-uninitialized nodes. llvm-svn: 47586 | |||||
* | Added FIXME. | Ted Kremenek | 2008-02-26 | 1 | -0/+2 | |
| | | | | llvm-svn: 47578 | |||||
* | Minor bug fix in LiveVariables: don't "kill" decls referenced by a DeclStmt | Ted Kremenek | 2008-02-25 | 1 | -5/+5 | |
| | | | | | | that aren't VarDecls. llvm-svn: 47572 | |||||
* | Better handling of calls to functions via function pointers. | Ted Kremenek | 2008-02-25 | 1 | -3/+5 | |
| | | | | llvm-svn: 47562 | |||||
* | Fixed bug in RemoveDeadBindings when performing the mark-and-sweep over the | Ted Kremenek | 2008-02-25 | 1 | -4/+2 | |
| | | | | | | | symbolic store: VarDecl's inserted into the sweep may not always bind to anything; handle this special case just like bindings to uninitialized values. llvm-svn: 47550 | |||||
* | Expanded transfer function support for divide-by-zero checking to include | Ted Kremenek | 2008-02-25 | 1 | -3/+10 | |
| | | | | | | "remainder-by-zero" checking (operator '%'). llvm-svn: 47549 | |||||
* | Added hack to transfer function logic to handle the case where a DeclRefExpr | Ted Kremenek | 2008-02-25 | 1 | -1/+9 | |
| | | | | | | | | wrapping an EnumConstantDecl evaluates to an integer type that has a different signedness than the APSInt stored in the EnumConstantDecl. Will file a Bugzilla report. llvm-svn: 47548 | |||||
* | Added transfer function support for checking for divide-by-zero errors. | Ted Kremenek | 2008-02-25 | 1 | -1/+55 | |
| | | | | llvm-svn: 47547 | |||||
* | Fixed horrid bug in LiveVariables analysis where we were only merging at | Ted Kremenek | 2008-02-22 | 1 | -1/+1 | |
| | | | | | | | confluence points the liveness information for variables (Decls) and NOT block-level expressions. llvm-svn: 47506 | |||||
* | Punt on unifying symbolic lvalues. This won't be needed for many checkers. | Ted Kremenek | 2008-02-22 | 1 | -6/+12 | |
| | | | | llvm-svn: 47489 | |||||
* | Added "assumption" logic for lval::FuncVal and lval::GotoLabel, and simplified | Ted Kremenek | 2008-02-22 | 2 | -13/+8 | |
| | | | | | | assumption logic for lval::DeclVal. llvm-svn: 47466 | |||||
* | Bug fix: For transfer function for unary "!", compare the subexpression value | Ted Kremenek | 2008-02-22 | 1 | -1/+2 | |
| | | | | | | against '0' of the same bit-width. llvm-svn: 47465 | |||||
* | Bug fix in liveness: Only compute liveness information for VarDecls. | Ted Kremenek | 2008-02-22 | 1 | -6/+7 | |
| | | | | llvm-svn: 47464 | |||||
* | Return "Unknown" when using the value of a function pointer whose value | Ted Kremenek | 2008-02-21 | 1 | -1/+5 | |
| | | | | | | is symbolic. llvm-svn: 47463 | |||||
* | Added transfer function support for dispatching to functions we don't know | Ted Kremenek | 2008-02-21 | 1 | -4/+14 | |
| | | | | | | | about. The default logic is to invalidate the values of all values passed-by-reference. llvm-svn: 47456 | |||||
* | RemoveDeadBindings should now check for UninitalizedVal, as it is a now | Ted Kremenek | 2008-02-21 | 1 | -2/+9 | |
| | | | | | | an error to cast it to LVal. llvm-svn: 47450 |