- Aug 21, 2011
-
-
Jordy Rose authored
llvm-svn: 138215
-
- Aug 20, 2011
-
-
Benjamin Kramer authored
llvm-svn: 138214
-
Jordy Rose authored
[analyzer] RetainReleaseChecker always wants region change updates. There's no need for a flag, at least not right now. llvm-svn: 138212
-
Jordy Rose authored
llvm-svn: 138211
-
Jordy Rose authored
[analyzer] Move handling of hardcoded noreturn ("panic") methods from CFRefCount to NoReturnFunctionChecker. No functionality change intended. llvm-svn: 138210
-
Ted Kremenek authored
[analyzer] Handle reads of ObjCPropertyRefExprs implicitly in Environment. No need to bind an explicit value and create a new node. llvm-svn: 138196
-
Ted Kremenek authored
[analyzer] Simplify ExprEngine::VisitBinaryOperator() by removing recursive visit to subexpressions (which is no longer needed). llvm-svn: 138195
-
Ted Kremenek authored
of the analysis (e.g., analysis of C expressions, analysis of Objective-C expressions, and so on). llvm-svn: 138194
-
Ted Kremenek authored
llvm-svn: 138193
-
Anna Zaks authored
Static Analyzer Diagnostics: Move the responsibility for generating the endOfPath diagnostic piece from BugReport to BugReporterVisitor. Switch CFRefCount to use visitors in order to generate the endOfPath piece. llvm-svn: 138184
-
Ted Kremenek authored
llvm-svn: 138183
-
Anna Zaks authored
Static Analyzer Diagnostics: Switch CFRefCount to using the new visitor API. BugReport no longer needs to inherit from BugReporterVisitor. llvm-svn: 138142
-
Anna Zaks authored
Static Analyzer Diagnostics: Kill the addVisitorCreator(callbackTy, void*) API in favor of addVisitor(BugReporterVisitor*). 1) Create a header file to expose the predefined visitors. And move the parent(BugReporterVisitor) there as well. 2) Remove the registerXXXVisitor functions - the Visitor constructors/getters can be used now to create the object. One exception is registerVarDeclsLastStore(), which registers more then one visitor, so make it static member of FindLastStoreBRVisitor. 3) Modify all the checkers to use the new API. llvm-svn: 138126
-
- Aug 19, 2011
-
-
Anna Zaks authored
Fix a memory leak in the analyzer - BugReports didn't get freed. Plus, remove invalid assert from the destructor which wasn't called previously due to the leak. llvm-svn: 138027
-
Anna Zaks authored
One API change: I added BugReporter as an additional parameter to the BugReporterVisitor::VisitNode() method to allow visitors register other visitors with the report on the fly (while processing a node). This functionality is used by NilReceiverVisitor, which registers TrackNullOrUndefValue when the receiver is null. llvm-svn: 138001
-
- Aug 18, 2011
-
-
Anna Zaks authored
llvm-svn: 137899
-
Anna Zaks authored
Remove EnhancedBugReport and RangedBugReport - pull all the extra functionality they provided into their parent BugReport. The only functional changes are: made getRanges() non const - it adds default range to Ranges if none are supplied, made getStmt() private, which was another FIXME. llvm-svn: 137894
-
- Aug 17, 2011
-
-
Jordy Rose authored
[analyzer] Migrate assumption and binding handling from CFRefCount to RetainReleaseChecker. This is mostly a textual move and required no supporting changes. No functionality change intended. llvm-svn: 137874
-
Ted Kremenek authored
Fix a handful of dead stores found by Clang's static analyzer. There's a bunch of others I haven't touched. llvm-svn: 137867
-
Jordy Rose authored
llvm-svn: 137814
-
Jordy Rose authored
llvm-svn: 137813
-
Benjamin Kramer authored
This is ugly but ISO C++ doesn't allow direct casts. llvm-svn: 137812
-
Jordy Rose authored
llvm-svn: 137802
-
- Aug 16, 2011
-
-
Ted Kremenek authored
[analyzer] teach ExprEngine about loads from static C++ class fields. Fixes <rdar://problem/9948787>. llvm-svn: 137760
-
Jordy Rose authored
[analyzer] Overhaul of checker registration in preparation for basic plugin support. Removes support for checker groups (we can add them back in later if we decide they are still useful), and -analyzer-checker-help output is a little worse for the time being (no packages). llvm-svn: 137758
-
Anna Zaks authored
llvm-svn: 137740
-
Anna Zaks authored
llvm-svn: 137720
-
Ted Kremenek authored
[analyzer] Enhance ConditionVisitor to handle arbitrary ValueDecls in binary expressions, and also handle inverting the order of comparison when the named decl appears on the RHS. llvm-svn: 137714
-
Ted Kremenek authored
llvm-svn: 137708
-
Ted Kremenek authored
[analyzer] Enhance ConditionVisitor to understand eagerly evaluated (simple) binary conditions, and teach it to only focus on constraint changes. llvm-svn: 137705
-
Ted Kremenek authored
[analyzer] add ExprEngine::getEagerlyAssumedTags() to allow externally querying of "eagerly assumed" expressions. llvm-svn: 137704
-
Ted Kremenek authored
llvm-svn: 137697
-
Anna Zaks authored
MacOSKeychainAPIChecker: The security API/memory leak checker should always generate regular nodes instead of sink nodes. llvm-svn: 137681
-
Ted Kremenek authored
llvm-svn: 137677
-
Ted Kremenek authored
llvm-svn: 137665
-
- Aug 15, 2011
-
-
Anna Zaks authored
MacOSKeychainAPIChecker: Use llvm::SmallString instead of std::string (as per code review for r137523). llvm-svn: 137633
-
- Aug 13, 2011
-
-
Ted Kremenek authored
Cleanup various declarations of 'Stmt*' to be 'Stmt *', etc. in libAnalyzer and libStaticAnalyzer[*]. It was highly inconsistent, and very ugly to look at. llvm-svn: 137537
-
Ted Kremenek authored
Having a notion of an actual ProgramPointTag will aid in introspection of the analyzer's behavior. For example, the GraphViz output of the analyzer will pretty-print the tags in a useful manner. llvm-svn: 137529
-
Anna Zaks authored
MacOSKeychainAPIChecker: If the allocated data address entered as an enclosing function parameter, skip it to avoid false positives. llvm-svn: 137526
-
- Aug 12, 2011
-
-
Anna Zaks authored
Report errors earlier: on checkDeadSymbols() and clear the state after the symbol we are tracking goes out of scope. Also, perform lazy error checking. Instead of forcing the paths to be split depending one the return value of the allocator, make the return symbol depend on the allocated data symbol, which prolongs its life span to the time when the allocated data symbol becomes dead. llvm-svn: 137523
-