Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Make a major restructuring of the clang tree: introduce a top-level | Chris Lattner | 2008-03-15 | 16 | -5967/+0 |
| | | | | | | | | | | 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 | ||||
* | Fixed 80 col. violations. | Ted Kremenek | 2008-03-15 | 1 | -2/+4 |
| | | | | llvm-svn: 48400 | ||||
* | Disable creation of "ContentsOf" symbols. It was fundamentally broken on many | Ted Kremenek | 2008-03-15 | 1 | -2/+14 |
| | | | | | | | levels; eventually we will need a plug-in model (similar to GRTransferFuncs) to represent symbolic memory. llvm-svn: 48399 | ||||
* | Added initialization to ErrorDiag to silence gcc's warning of the variable | Ted Kremenek | 2008-03-15 | 1 | -1/+1 |
| | | | | | | potentially being used uninitialized (which it cannot be). llvm-svn: 48393 | ||||
* | Handle StmtExprs whose last contained statement is not an expression. | Ted Kremenek | 2008-03-15 | 1 | -3/+11 |
| | | | | llvm-svn: 48388 | ||||
* | Compute alignment in bytes, not bits. | Ted Kremenek | 2008-03-15 | 1 | -1/+1 |
| | | | | llvm-svn: 48387 | ||||
* | Implement transfer function logic for alignof operator (types). | Ted Kremenek | 2008-03-15 | 1 | -16/+16 |
| | | | | llvm-svn: 48386 | ||||
* | Added transfer function support in GRExprEngine for __extension__. | Ted Kremenek | 2008-03-15 | 1 | -0/+4 |
| | | | | llvm-svn: 48385 | ||||
* | "panic" has 5 letters, not 4. Bug pointed out by Nuno Lopes! | Ted Kremenek | 2008-03-14 | 1 | -3/+7 |
| | | | | llvm-svn: 48377 | ||||
* | Hack to hardwire in some panic functions that are not marked noreturn. | Ted Kremenek | 2008-03-14 | 1 | -2/+22 |
| | | | | llvm-svn: 48374 | ||||
* | Emit warnings for undefined control-flow. | Ted Kremenek | 2008-03-14 | 2 | -11/+29 |
| | | | | llvm-svn: 48368 | ||||
* | Path-sensitive analyses no longer take a FunctionDecl, but any Decl representing | Ted Kremenek | 2008-03-14 | 2 | -4/+4 |
| | | | | | | | | | a block of "code". Patched various ASTConsumers (such as ASTDumper) to have more support for processing ObjCMethodDecl. CFGVisitor now builds CFGs for ObjCMethodDecls. llvm-svn: 48363 | ||||
* | The LiveVariables analysis no longer requires a FunctionDecl&; this allows it | Ted Kremenek | 2008-03-13 | 2 | -13/+9 |
| | | | | | | to be run on other declarations of blocks of code (e.g., Objective-C methods.) llvm-svn: 48339 | ||||
* | Changed CallRetValSymbol to SymbolConjured to allow "conjured" symbols to be ↵ | Ted Kremenek | 2008-03-12 | 4 | -12/+31 |
| | | | | | | | | | created for any expression, not just CallExprs. Added experimental support for conjuring symbols during assingments where the RHS is "unknown". This allows more value tracking for path-sensitivity. Fixed bug in "assumption" logic when processing symbolic constraints; we would improperly mark constraints we didn't support as infeasible. llvm-svn: 48306 | ||||
* | Added generation of symbolic values for the return values of functions that have | Ted Kremenek | 2008-03-12 | 1 | -12/+26 |
| | | | | | | no summaries (useful for false-path pruning). llvm-svn: 48301 | ||||
* | In GRSimpleVals, added the generation of symbolic values for the return values | Ted Kremenek | 2008-03-12 | 1 | -3/+17 |
| | | | | | | of function calls. This is useful in pruning paths. llvm-svn: 48299 | ||||
* | Improved ExplodedGraph::Trim to only show nodes reachable from a reverse BFS | Ted Kremenek | 2008-03-12 | 3 | -22/+81 |
| | | | | | | | from the sources, and to try and generate only a single path from sources to roots. llvm-svn: 48286 | ||||
* | Prototype (pre-alpha) implementation of CFRef checker. | Ted Kremenek | 2008-03-12 | 4 | -98/+446 |
| | | | | llvm-svn: 48272 | ||||
* | Added pretty-printing support for checker-specific state for the CFRefCount ↵ | Ted Kremenek | 2008-03-11 | 1 | -1/+66 |
| | | | | | | checker. llvm-svn: 48242 | ||||
* | Expanded graph-visualization to include optional pretty-printing of ↵ | Ted Kremenek | 2008-03-11 | 1 | -1/+6 |
| | | | | | | checker-specific state. llvm-svn: 48238 | ||||
* | Expanded ValueState pretty-printing to use an optional "CheckerStatePrinter" | Ted Kremenek | 2008-03-11 | 1 | -5/+13 |
| | | | | | | object to pretty-print the component of a state that is specific to a checker. llvm-svn: 48237 | ||||
* | Expanded graph visualization interface to include specifying a range of | Ted Kremenek | 2008-03-11 | 1 | -14/+25 |
| | | | | | | nodes to use a trim sources. llvm-svn: 48236 | ||||
* | Added bookkeeping of error nodes. | Ted Kremenek | 2008-03-11 | 1 | -10/+34 |
| | | | | llvm-svn: 48234 | ||||
* | Added main logic for typestate tracking for the CFRetain checker. | Ted Kremenek | 2008-03-11 | 1 | -11/+117 |
| | | | | llvm-svn: 48231 | ||||
* | Added main skeleton for CFRetain transfer function logic. | Ted Kremenek | 2008-03-11 | 3 | -59/+267 |
| | | | | llvm-svn: 48214 | ||||
* | Fix "error: explicit template specialization cannot have a storage class" | Chris Lattner | 2008-03-10 | 1 | -3/+3 |
| | | | | | | with gcc 4.4, patch by Shantonu Sen! llvm-svn: 48155 | ||||
* | More edge-case handling with using liveness information to prune dead state ↵ | Ted Kremenek | 2008-03-10 | 2 | -1/+3 |
| | | | | | | values. llvm-svn: 48127 | ||||
* | More cleanups with using the liveness analysis to removed dead symbols and | Ted Kremenek | 2008-03-10 | 1 | -40/+25 |
| | | | | | | | | | | variables from the symbolic state. Now we keep a mapping from the predecessor node of a statement and its cleaned state, and interpose an accessor "GetState()" to return the cleaned state when the node is the predecessor node, and the real state otherwise. This obviates problem of ever accidentally cleaning the state more than once (thus blowing away new bindings by mistake). llvm-svn: 48124 | ||||
* | When processing the transfer function for a statement, evaluate | Ted Kremenek | 2008-03-09 | 1 | -15/+10 |
| | | | | | | | | RemoveDeadBindings early because (1) it will always be called and (2) we can dispatch to a plug-in transfer function that can evaluate the effect of dead symbols (not yet added). llvm-svn: 48114 | ||||
* | Refactored guards for "GRExprEngine::RemoveDeadBindings" directly into the | Ted Kremenek | 2008-03-09 | 1 | -17/+15 |
| | | | | | | | method. This paves the way for other alterations to RemoveDeadBindings that are transparent to its callers. llvm-svn: 48113 | ||||
* | Bug fix in the transfer function for compound assignments: if the value | Ted Kremenek | 2008-03-09 | 1 | -13/+9 |
| | | | | | | | of the LHS expressions is Unknown, the value of the entire expression does not evaluate to the RHS (as is the case with normal assignments). llvm-svn: 48102 | ||||
* | Fixed crash where SetBlkExpr would attempt to query the liveness data when | Ted Kremenek | 2008-03-09 | 1 | -1/+1 |
| | | | | | | we weren't processing a statement within a basic block. llvm-svn: 48087 | ||||
* | Bug fix: Don't call RemoveDeadBindings more than once (can kill newly ↵ | Ted Kremenek | 2008-03-09 | 3 | -28/+63 |
| | | | | | | generated values to Block-Level Expressions). llvm-svn: 48079 | ||||
* | Increased worklist limit for GRSimpleVals. | Ted Kremenek | 2008-03-07 | 1 | -1/+1 |
| | | | | llvm-svn: 48037 | ||||
* | Added --trim-path-graph to the driver to trim paths from the ExplodedGraph | Ted Kremenek | 2008-03-07 | 3 | -27/+168 |
| | | | | | | | | | | | | | | | | that are not related to error nodes. Fixed bug where we did not detect some NULL dereferences. Added "ExplodedGraph::Trim" to trim all nodes that cannot transitively reach a set of provided nodes. Fixed subtle bug in ExplodedNodeImpl where we could create predecessor iterators that included the mangled "sink" bit. The better fix is to integrate this bit into the void* for the wrapped State, not the NodeGroups representing a node's predecessors and successors. llvm-svn: 48036 | ||||
* | Improved graph visualization of ExplodedGraphs to include source line and column | Ted Kremenek | 2008-03-07 | 1 | -4/+21 |
| | | | | | | information. llvm-svn: 48031 | ||||
* | Renamed ValueManager to BasicValueFactory. | Ted Kremenek | 2008-03-07 | 8 | -95/+96 |
| | | | | llvm-svn: 48025 | ||||
* | Refined divide-by-zero checking to distinguish between must and may | Ted Kremenek | 2008-03-07 | 2 | -27/+43 |
| | | | | | | divide-by-zero errors. llvm-svn: 48013 | ||||
* | fix typos | Gabor Greif | 2008-03-06 | 9 | -9/+9 |
| | | | | llvm-svn: 47995 | ||||
* | Fixed mismatched deallocation in GRBlockCounter::Factory::~Factory. | Ted Kremenek | 2008-03-06 | 1 | -1/+1 |
| | | | | | | Reported by Zhongxing Xu! llvm-svn: 47991 | ||||
* | Added boilerplate to execute the CF reference count checker (which isn't yet ↵ | Ted Kremenek | 2008-03-06 | 2 | -0/+104 |
| | | | | | | implemented). llvm-svn: 47982 | ||||
* | Added transfer function support for __builtin_expect. | Ted Kremenek | 2008-03-05 | 1 | -2/+15 |
| | | | | llvm-svn: 47971 | ||||
* | Small bug fix when handling CallExprs that generate sink nodes. | Ted Kremenek | 2008-03-05 | 1 | -11/+2 |
| | | | | llvm-svn: 47970 | ||||
* | Fixed bug that could case unwanted bifurcation of states when evaluating calls. | Ted Kremenek | 2008-03-05 | 1 | -19/+36 |
| | | | | llvm-svn: 47964 | ||||
* | Fixed bogus assumption mistakenly introduced in r47955. | Ted Kremenek | 2008-03-05 | 1 | -2/+1 |
| | | | | llvm-svn: 47958 | ||||
* | Fixed a horribly insidious bit-masking bug in the implementation of | Ted Kremenek | 2008-03-05 | 1 | -3/+13 |
| | | | | | | ExplodedNode that would occasionally result in heap corruption. llvm-svn: 47956 | ||||
* | Minor cleanups (mainly indentation). | Ted Kremenek | 2008-03-05 | 3 | -17/+5 |
| | | | | llvm-svn: 47955 | ||||
* | remove the source location arguments to various target query methods. | Chris Lattner | 2008-03-05 | 5 | -24/+13 |
| | | | | llvm-svn: 47954 | ||||
* | Plug-in transfer function "EvalCall" now takes as an argument the current | Ted Kremenek | 2008-03-05 | 3 | -10/+23 |
| | | | | | | GRStmtNodeBuilder and is now responsible for adding its own nodes to the graph. llvm-svn: 47923 | ||||
* | Moved implementation of GRExprEngine::Nodify into GRStmtNodeBuilder. This will | Ted Kremenek | 2008-03-04 | 1 | -24/+0 |
| | | | | | | | allow us to pass the builder to plug-in transfer functions and allow those functions to create intermediate nodes. llvm-svn: 47919 |