Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | Teach AnalysisContext::getBody() about BlockDecls. | Ted Kremenek | 2009-12-04 | 1 | -0/+2 | |
| | | | | llvm-svn: 90585 | |||||
* | Teach 'ExecutionContinues' (part of BugReporter's diagnostic generation) ↵ | Ted Kremenek | 2009-12-04 | 1 | -4/+13 | |
| | | | | | | about BlockDecls. llvm-svn: 90584 | |||||
* | Include BlockDeclRefExprs in constructed CFGs. | Ted Kremenek | 2009-12-04 | 1 | -10/+0 | |
| | | | | llvm-svn: 90583 | |||||
* | Replace SymbolReaper::isLive(VarDecl) with SymbolReaper::isLive(VarRegion). | Ted Kremenek | 2009-12-04 | 3 | -2/+6 | |
| | | | | llvm-svn: 90582 | |||||
* | Rename instance variable to avoid name conflict with parameters, and modify ↵ | Ted Kremenek | 2009-12-04 | 1 | -2/+2 | |
| | | | | | | addTransition() to compare the correct state values. llvm-svn: 90552 | |||||
* | Allow BlockInvocationContext to wrap either a BlockDecl* or a ↵ | Ted Kremenek | 2009-12-04 | 1 | -3/+16 | |
| | | | | | | BlockDataRegion*, giving us choice in our degree of context-sensitivity. llvm-svn: 90516 | |||||
* | Refactor LocationContext creation logic into a single member template. | Ted Kremenek | 2009-12-04 | 1 | -48/+50 | |
| | | | | llvm-svn: 90509 | |||||
* | Refactor FoldingSet profiling code for LocationContexts, and add a new ↵ | Ted Kremenek | 2009-12-04 | 1 | -8/+25 | |
| | | | | | | BlockInvocationContext to represent the invocation of a block. llvm-svn: 90506 | |||||
* | constify MemRegion* returned by MemRegionManager::getXXXRegion() methods. | Ted Kremenek | 2009-12-04 | 3 | -39/+36 | |
| | | | | llvm-svn: 90503 | |||||
* | More template-logic for MemRegion construction out of MemRegion.h and into ↵ | Ted Kremenek | 2009-12-04 | 1 | -0/+155 | |
| | | | | | | MemRegion.cpp. llvm-svn: 90499 | |||||
* | Tweak handling of BlockDataRegions in ↵ | Ted Kremenek | 2009-12-03 | 1 | -4/+6 | |
| | | | | | | RegionStoreManager::RemoveDeadBindings(): only the VarRegions for variables marked with the '__block' annotation should have their lifetime extended by a BlockDataRegion. llvm-svn: 90462 | |||||
* | Add security syntactic checker for mktemp. | Zhongxing Xu | 2009-12-03 | 1 | -1/+41 | |
| | | | | | | Patch by Lei Zhang! llvm-svn: 90444 | |||||
* | Update CMake for CallGraph.cpp move. | Daniel Dunbar | 2009-12-03 | 1 | -1/+0 | |
| | | | | llvm-svn: 90443 | |||||
* | Add value invalidation logic for block-captured variables. Conceptually ↵ | Ted Kremenek | 2009-12-03 | 2 | -2/+23 | |
| | | | | | | invoking a block (without specific reasoning of what the block does) can invalidate any value to it by reference when the block was created. llvm-svn: 90431 | |||||
* | Make BlockDataRegion::referenced_vars_iterator an actual class that enforces ↵ | Ted Kremenek | 2009-12-03 | 1 | -2/+4 | |
| | | | | | | that all MemRegions iterated over are VarRegions. llvm-svn: 90430 | |||||
* | Fix layering violation by moving Analysis/CallGraph to Index | Daniel Dunbar | 2009-12-03 | 1 | -150/+0 | |
| | | | | llvm-svn: 90424 | |||||
* | Add batch version of 'StoreManager::InvalidateRegion()' for invalidating ↵ | Ted Kremenek | 2009-12-03 | 3 | -28/+64 | |
| | | | | | | multiple regions as once. After adopting this in the CFRefCount::EvalCall(), we see a reduction in analysis time of 1.5% when analyzing all of SQLite3. llvm-svn: 90405 | |||||
* | Add a heuristic to the dead stores checker to prune dead stores for ↵ | Ted Kremenek | 2009-12-03 | 1 | -1/+2 | |
| | | | | | | variables annotated with '__block'. This is overly conservative, but now the analyzer doesn't report dead stores for variables that can be updated by a block call. llvm-svn: 90364 | |||||
* | Hard bifurcate the state into nil receiver and non-nil receiver, so that | Zhongxing Xu | 2009-12-02 | 3 | -83/+73 | |
| | | | | | | | | | | | we don't need to use the DoneEvaluation hack when check for ObjCMessageExpr. PreVisitObjCMessageExpr() only checks for undefined receiver or arguments. Add checker interface EvalNilReceiver(). This is a 'once-and-done' interface. llvm-svn: 90296 | |||||
* | Provide the correct vector size for referenced variables. | Ted Kremenek | 2009-12-01 | 1 | -1/+1 | |
| | | | | llvm-svn: 90267 | |||||
* | Fix early-return logic in scanReachableSymbols() to match the rest of the ↵ | Ted Kremenek | 2009-12-01 | 1 | -6/+6 | |
| | | | | | | recursive logic in the methods of ScanReachableSymbols. llvm-svn: 90245 | |||||
* | Eliminate another VISIBILITY_HIDDEN | Douglas Gregor | 2009-11-30 | 1 | -4/+1 | |
| | | | | llvm-svn: 90139 | |||||
* | Adapt to the DOTGraphTraits changes in LLVM. | Tobias Grosser | 2009-11-30 | 3 | -4/+11 | |
| | | | | llvm-svn: 90137 | |||||
* | Port BugReporter and BugType to StringRef. | Benjamin Kramer | 2009-11-29 | 8 | -23/+20 | |
| | | | | llvm-svn: 90086 | |||||
* | Kill some unnecessary calls to c_str(). | Benjamin Kramer | 2009-11-29 | 3 | -5/+4 | |
| | | | | llvm-svn: 90084 | |||||
* | Fix null dereference in UndefResultChecker identified by running the ↵ | Ted Kremenek | 2009-11-29 | 1 | -2/+3 | |
| | | | | | | analyzer over Postgresql. llvm-svn: 90060 | |||||
* | Cleanup includes and forward decls. | Benjamin Kramer | 2009-11-28 | 2 | -0/+2 | |
| | | | | llvm-svn: 90034 | |||||
* | Remove unneeded includes. | Benjamin Kramer | 2009-11-28 | 1 | -10/+2 | |
| | | | | llvm-svn: 90032 | |||||
* | lib/Analysis: Remove VISIBILITY_HIDDEN from definitions in anonymous namespace | Kovarththanan Rajaratnam | 2009-11-28 | 41 | -119/+104 | |
| | | | | llvm-svn: 90028 | |||||
* | Improve diagnostics in ReturnStackAddressChecker for returning a ↵ | Ted Kremenek | 2009-11-26 | 1 | -0/+8 | |
| | | | | | | stack-allocated block. Implements the rest of <rdar://problem/7387385>. llvm-svn: 89940 | |||||
* | Add a PostVisitBlockExpr() method to RetainReleaseChecker to query for | Ted Kremenek | 2009-11-26 | 1 | -1/+27 | |
| | | | | | | | | the set of variables "captured" by a block. Until the analysis gets more sophisticated, for now we stop the retain count tracking of any objects (transitively) referenced by these variables. llvm-svn: 89929 | |||||
* | Teach RegionStoreManager::RemoveDeadBindings() about BlockDataRegions. Any ↵ | Ted Kremenek | 2009-11-26 | 1 | -4/+17 | |
| | | | | | | VarRegion for a "captured" variable should also be considered live. llvm-svn: 89928 | |||||
* | Add iterators to BlockDataRegion that allow clients to iterate over the ↵ | Ted Kremenek | 2009-11-26 | 1 | -1/+61 | |
| | | | | | | VarRegions for "captured" variables for a block. llvm-svn: 89927 | |||||
* | Added batch versions of GRState::scanReachableSymbols() so that clients can ↵ | Ted Kremenek | 2009-11-26 | 1 | -0/+21 | |
| | | | | | | scan a collection of SVals or MemRegions all at once. llvm-svn: 89926 | |||||
* | Enhance LiveVariables to understand that blocks can extend the liveness of a ↵ | Ted Kremenek | 2009-11-26 | 2 | -15/+92 | |
| | | | | | | | | | | | | | | | variable by "capturing" them in a BlockExpr. This required two changes: 1) Added 'getReferencedgetReferencedBlockVars()' to AnalysisContext so that clients can iterate over the "captured" variables in a block. 2) Modified LiveVariables to take an AnalysisContext& in its constructor and to call getReferencedgetReferencedBlockVars() when it processes a BlockExpr*. llvm-svn: 89924 | |||||
* | Add missing case in switch statement. | Ted Kremenek | 2009-11-25 | 1 | -1/+2 | |
| | | | | llvm-svn: 89903 | |||||
* | Refine MemRegions for blocks. Add a new region called | Ted Kremenek | 2009-11-25 | 5 | -7/+43 | |
| | | | | | | | | | | | 'BlockDataRegion' to distinguish between the code associated with a block (which is represented by 'BlockTextRegion') and an instance of a block, which includes both code and data. 'BlockDataRegion' has an associated LocationContext, which can be used to eventually model the lifetime of a block object once LocationContexts can represent scopes (and iterations around a loop, etc.). llvm-svn: 89900 | |||||
* | Remove recently added FIXME. The appropriate FIXME is already in ↵ | Ted Kremenek | 2009-11-25 | 1 | -2/+0 | |
| | | | | | | MemRegionManager::getVarRegion(). llvm-svn: 89897 | |||||
* | Add FIXME. | Ted Kremenek | 2009-11-25 | 1 | -0/+2 | |
| | | | | llvm-svn: 89892 | |||||
* | Add post-visit Checker support in GRExprEngine for BlockExpr. | Ted Kremenek | 2009-11-25 | 1 | -1/+7 | |
| | | | | llvm-svn: 89890 | |||||
* | Add a new RetainReleaseChecker class (that subclasses CheckerVisitor) to ↵ | Ted Kremenek | 2009-11-25 | 1 | -0/+22 | |
| | | | | | | extend the functionality of the retain/release checker using the new Checker interface. Pieces of CFRefCount will gradually be migrated to this new class over time. llvm-svn: 89889 | |||||
* | Move RegisterChecks() to the end of the file. No functionality change. | Ted Kremenek | 2009-11-25 | 1 | -57/+59 | |
| | | | | llvm-svn: 89888 | |||||
* | Make RegisterInternalChecks() part of GRExprEngine's private implementation ↵ | Ted Kremenek | 2009-11-25 | 1 | -30/+32 | |
| | | | | | | by making it a static function within GRExprEngine.cpp. llvm-svn: 89884 | |||||
* | Register internal checks with GRExprEngine when it is constructed, not ↵ | Ted Kremenek | 2009-11-25 | 1 | -1/+5 | |
| | | | | | | manually in AnalysisConsumer.cpp. llvm-svn: 89883 | |||||
* | When dispatching to Checker objects in GRExprEngine::CheckerVisit(), | Ted Kremenek | 2009-11-25 | 1 | -4/+12 | |
| | | | | | | | | | only stop processing the checkers after all the nodes for a current check have been processed. This (I believe) handles the case where PredSet (the input nodes) contains more than one node due to state bifurcation. Zhongxing: can you review this? llvm-svn: 89882 | |||||
* | Add really basic support for blocks in the retain/release checker. For now, ↵ | Ted Kremenek | 2009-11-25 | 1 | -3/+14 | |
| | | | | | | anytime we pass a tracked object to a block call we stop tracking it. llvm-svn: 89831 | |||||
* | Allow building of CFGs for ASTs that contain BlockExprs. | Ted Kremenek | 2009-11-25 | 1 | -3/+6 | |
| | | | | llvm-svn: 89830 | |||||
* | Add transfer function support for BlockExpr. | Ted Kremenek | 2009-11-25 | 1 | -0/+12 | |
| | | | | llvm-svn: 89829 | |||||
* | Split CodeTextRegion into FunctionTextRegion and BlockTextRegion. This a ↵ | Ted Kremenek | 2009-11-25 | 6 | -16/+49 | |
| | | | | | | precursor to having basic static analysis support for blocks. llvm-svn: 89828 | |||||
* | For the nil-receiver checker, take into account the behavioral changes that ↵ | Ted Kremenek | 2009-11-24 | 1 | -6/+19 | |
| | | | | | | got introduced in Mac OS X 10.5 and later, notably return values of double, float, etc., will not be garbage. Fixes <rdar://problem/6829160>. llvm-svn: 89809 |