- Dec 04, 2009
-
-
Ted Kremenek authored
llvm-svn: 90499
-
- Dec 03, 2009
-
-
Ted Kremenek authored
Tweak handling of BlockDataRegions in RegionStoreManager::RemoveDeadBindings(): only the VarRegions for variables marked with the '__block' annotation should have their lifetime extended by a BlockDataRegion. llvm-svn: 90462
-
Zhongxing Xu authored
Patch by Lei Zhang! llvm-svn: 90444
-
Daniel Dunbar authored
llvm-svn: 90443
-
Ted Kremenek authored
Add value invalidation logic for block-captured variables. Conceptually 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
-
Ted Kremenek authored
Make BlockDataRegion::referenced_vars_iterator an actual class that enforces that all MemRegions iterated over are VarRegions. llvm-svn: 90430
-
Daniel Dunbar authored
llvm-svn: 90424
-
Ted Kremenek authored
Add batch version of 'StoreManager::InvalidateRegion()' for invalidating 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
-
Ted Kremenek authored
Add a heuristic to the dead stores checker to prune dead stores for 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
-
- Dec 02, 2009
-
-
Zhongxing Xu authored
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
-
- Dec 01, 2009
-
-
Ted Kremenek authored
llvm-svn: 90267
-
Ted Kremenek authored
Fix early-return logic in scanReachableSymbols() to match the rest of the recursive logic in the methods of ScanReachableSymbols. llvm-svn: 90245
-
- Nov 30, 2009
-
-
Douglas Gregor authored
llvm-svn: 90139
-
Tobias Grosser authored
llvm-svn: 90137
-
- Nov 29, 2009
-
-
Benjamin Kramer authored
llvm-svn: 90086
-
Benjamin Kramer authored
llvm-svn: 90084
-
Ted Kremenek authored
llvm-svn: 90060
-
- Nov 28, 2009
-
-
Benjamin Kramer authored
llvm-svn: 90034
-
Benjamin Kramer authored
llvm-svn: 90032
-
Kovarththanan Rajaratnam authored
llvm-svn: 90028
-
- Nov 26, 2009
-
-
Ted Kremenek authored
Improve diagnostics in ReturnStackAddressChecker for returning a stack-allocated block. Implements the rest of <rdar://problem/7387385>. llvm-svn: 89940
-
Ted Kremenek authored
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
-
Ted Kremenek authored
Teach RegionStoreManager::RemoveDeadBindings() about BlockDataRegions. Any VarRegion for a "captured" variable should also be considered live. llvm-svn: 89928
-
Ted Kremenek authored
Add iterators to BlockDataRegion that allow clients to iterate over the VarRegions for "captured" variables for a block. llvm-svn: 89927
-
Ted Kremenek authored
Added batch versions of GRState::scanReachableSymbols() so that clients can scan a collection of SVals or MemRegions all at once. llvm-svn: 89926
-
Ted Kremenek authored
Enhance LiveVariables to understand that blocks can extend the liveness of a 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
-
Ted Kremenek authored
llvm-svn: 89903
-
Ted Kremenek authored
'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
-
Ted Kremenek authored
llvm-svn: 89897
-
- Nov 25, 2009
-
-
Ted Kremenek authored
llvm-svn: 89892
-
Ted Kremenek authored
llvm-svn: 89890
-
Ted Kremenek authored
Add a new RetainReleaseChecker class (that subclasses CheckerVisitor) to 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
-
Ted Kremenek authored
llvm-svn: 89888
-
Ted Kremenek authored
Make RegisterInternalChecks() part of GRExprEngine's private implementation by making it a static function within GRExprEngine.cpp. llvm-svn: 89884
-
Ted Kremenek authored
Register internal checks with GRExprEngine when it is constructed, not manually in AnalysisConsumer.cpp. llvm-svn: 89883
-
Ted Kremenek authored
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
-
Ted Kremenek authored
Add really basic support for blocks in the retain/release checker. For now, anytime we pass a tracked object to a block call we stop tracking it. llvm-svn: 89831
-
Ted Kremenek authored
llvm-svn: 89830
-
Ted Kremenek authored
llvm-svn: 89829
-
Ted Kremenek authored
Split CodeTextRegion into FunctionTextRegion and BlockTextRegion. This a precursor to having basic static analysis support for blocks. llvm-svn: 89828
-