- Dec 03, 2009
-
-
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
-
- Nov 24, 2009
-
-
Ted Kremenek authored
For the nil-receiver checker, take into account the behavioral changes that 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
-
Ted Kremenek authored
initial transition of the nil-receiver checker to the Checker interface as done in r89745. Some important changes include: 1) We consolidate the BugType object used for nil receiver bug reports, and don't include the type of the returned value in the BugType (which would be wrong if a nil receiver bug was reported more than once) 2) Added a new (temporary) flag to CheckerContext: DoneEvauating. This is used by GRExprEngine when evaluating message expressions to not continue evaluating the message expression if this flag is set. This flag is currently set by the nil receiver checker. This is an intermediate solution to allow the nil-receiver checker to properly work as a plug-in outside of GRExprEngine. Basically, this flag indicates that the entire message expression has been evaluated, not just a precondition (which is what the nil-receiver checker does). This flag *should not* be repurposed for general use, but just to pull more things out of GRExprEngine that already in there as we devise a better interface in the Checker class. 3) Cleaned up the logic in the nil-receiver checker, making the control-flow a lot easier to read. llvm-svn: 89804
-
Zhongxing Xu authored
llvm-svn: 89751
-
Zhongxing Xu authored
llvm-svn: 89750
-
Zhongxing Xu authored
CallAndMessageChecker. llvm-svn: 89745
-