summaryrefslogtreecommitdiffstats
path: root/clang/Analysis
Commit message (Collapse)AuthorAgeFilesLines
* Make a major restructuring of the clang tree: introduce a top-levelChris Lattner2008-03-1516-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 Kremenek2008-03-151-2/+4
| | | | llvm-svn: 48400
* Disable creation of "ContentsOf" symbols. It was fundamentally broken on manyTed Kremenek2008-03-151-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 variableTed Kremenek2008-03-151-1/+1
| | | | | | potentially being used uninitialized (which it cannot be). llvm-svn: 48393
* Handle StmtExprs whose last contained statement is not an expression.Ted Kremenek2008-03-151-3/+11
| | | | llvm-svn: 48388
* Compute alignment in bytes, not bits.Ted Kremenek2008-03-151-1/+1
| | | | llvm-svn: 48387
* Implement transfer function logic for alignof operator (types).Ted Kremenek2008-03-151-16/+16
| | | | llvm-svn: 48386
* Added transfer function support in GRExprEngine for __extension__.Ted Kremenek2008-03-151-0/+4
| | | | llvm-svn: 48385
* "panic" has 5 letters, not 4. Bug pointed out by Nuno Lopes!Ted Kremenek2008-03-141-3/+7
| | | | llvm-svn: 48377
* Hack to hardwire in some panic functions that are not marked noreturn.Ted Kremenek2008-03-141-2/+22
| | | | llvm-svn: 48374
* Emit warnings for undefined control-flow.Ted Kremenek2008-03-142-11/+29
| | | | llvm-svn: 48368
* Path-sensitive analyses no longer take a FunctionDecl, but any Decl representingTed Kremenek2008-03-142-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 itTed Kremenek2008-03-132-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 Kremenek2008-03-124-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 haveTed Kremenek2008-03-121-12/+26
| | | | | | no summaries (useful for false-path pruning). llvm-svn: 48301
* In GRSimpleVals, added the generation of symbolic values for the return valuesTed Kremenek2008-03-121-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 BFSTed Kremenek2008-03-123-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 Kremenek2008-03-124-98/+446
| | | | llvm-svn: 48272
* Added pretty-printing support for checker-specific state for the CFRefCount ↵Ted Kremenek2008-03-111-1/+66
| | | | | | checker. llvm-svn: 48242
* Expanded graph-visualization to include optional pretty-printing of ↵Ted Kremenek2008-03-111-1/+6
| | | | | | checker-specific state. llvm-svn: 48238
* Expanded ValueState pretty-printing to use an optional "CheckerStatePrinter"Ted Kremenek2008-03-111-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 ofTed Kremenek2008-03-111-14/+25
| | | | | | nodes to use a trim sources. llvm-svn: 48236
* Added bookkeeping of error nodes.Ted Kremenek2008-03-111-10/+34
| | | | llvm-svn: 48234
* Added main logic for typestate tracking for the CFRetain checker.Ted Kremenek2008-03-111-11/+117
| | | | llvm-svn: 48231
* Added main skeleton for CFRetain transfer function logic.Ted Kremenek2008-03-113-59/+267
| | | | llvm-svn: 48214
* Fix "error: explicit template specialization cannot have a storage class" Chris Lattner2008-03-101-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 Kremenek2008-03-102-1/+3
| | | | | | values. llvm-svn: 48127
* More cleanups with using the liveness analysis to removed dead symbols andTed Kremenek2008-03-101-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, evaluateTed Kremenek2008-03-091-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 theTed Kremenek2008-03-091-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 valueTed Kremenek2008-03-091-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 whenTed Kremenek2008-03-091-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 Kremenek2008-03-093-28/+63
| | | | | | generated values to Block-Level Expressions). llvm-svn: 48079
* Increased worklist limit for GRSimpleVals.Ted Kremenek2008-03-071-1/+1
| | | | llvm-svn: 48037
* Added --trim-path-graph to the driver to trim paths from the ExplodedGraphTed Kremenek2008-03-073-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 columnTed Kremenek2008-03-071-4/+21
| | | | | | information. llvm-svn: 48031
* Renamed ValueManager to BasicValueFactory.Ted Kremenek2008-03-078-95/+96
| | | | llvm-svn: 48025
* Refined divide-by-zero checking to distinguish between must and mayTed Kremenek2008-03-072-27/+43
| | | | | | divide-by-zero errors. llvm-svn: 48013
* fix typosGabor Greif2008-03-069-9/+9
| | | | llvm-svn: 47995
* Fixed mismatched deallocation in GRBlockCounter::Factory::~Factory.Ted Kremenek2008-03-061-1/+1
| | | | | | Reported by Zhongxing Xu! llvm-svn: 47991
* Added boilerplate to execute the CF reference count checker (which isn't yet ↵Ted Kremenek2008-03-062-0/+104
| | | | | | implemented). llvm-svn: 47982
* Added transfer function support for __builtin_expect.Ted Kremenek2008-03-051-2/+15
| | | | llvm-svn: 47971
* Small bug fix when handling CallExprs that generate sink nodes.Ted Kremenek2008-03-051-11/+2
| | | | llvm-svn: 47970
* Fixed bug that could case unwanted bifurcation of states when evaluating calls.Ted Kremenek2008-03-051-19/+36
| | | | llvm-svn: 47964
* Fixed bogus assumption mistakenly introduced in r47955.Ted Kremenek2008-03-051-2/+1
| | | | llvm-svn: 47958
* Fixed a horribly insidious bit-masking bug in the implementation ofTed Kremenek2008-03-051-3/+13
| | | | | | ExplodedNode that would occasionally result in heap corruption. llvm-svn: 47956
* Minor cleanups (mainly indentation).Ted Kremenek2008-03-053-17/+5
| | | | llvm-svn: 47955
* remove the source location arguments to various target query methods.Chris Lattner2008-03-055-24/+13
| | | | llvm-svn: 47954
* Plug-in transfer function "EvalCall" now takes as an argument the currentTed Kremenek2008-03-053-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 willTed Kremenek2008-03-041-24/+0
| | | | | | | allow us to pass the builder to plug-in transfer functions and allow those functions to create intermediate nodes. llvm-svn: 47919
OpenPOWER on IntegriCloud