- Oct 06, 2011
-
-
Ted Kremenek authored
Fix major regression in RetainCountChecker. DefaultSummaries were not being used when they were meant to be. Fixes <rdar://problem/10241614>. llvm-svn: 141250
-
Anna Zaks authored
[analyzer] Remove the last dependency on CheckerContext::getNodeBuilder() as well as the method itself. Checkers should not directly access NodeBuilder, nodes can be created by calling the CheckerContext's generateNode() methods. llvm-svn: 141249
-
Anna Zaks authored
[analyzer] OSAtomicChecker implements evalCall in a very invasive way - it essentially simulates inlining of compareAndSwap() by means of setting the NodeBuilder flags and calling ExprEngine directly. This commit introduces a new callback just for this checker to unblock checker API cleanup. llvm-svn: 141246
-
- Oct 05, 2011
-
-
Anna Zaks authored
[analyzer] Removing more references to CheckerContext::getNodeBuilder(): ask CheckerContext to generate the nodes. llvm-svn: 141136
-
- Oct 04, 2011
-
-
Anna Zaks authored
[analyzer] Removing references to CheckerContext::getNodeBuilder(): checkers can obtain block count directly from the Context. llvm-svn: 141112
-
Anna Zaks authored
llvm-svn: 141098
-
Anna Zaks authored
[analyzer] Remove redundant state (AnalysisContext pointer for every BinaryOperator tracked) from IdempotentOperationChecker. llvm-svn: 141045
-
- Oct 03, 2011
-
-
Anna Zaks authored
[analyzer] In UndefBranchChecker, use a node generator which does not create an edge/branching. (ExprEngine should be in charge of generating edges. The checkers should examine the condition and generate PostCondition node if needed.) llvm-svn: 141034
-
Anna Zaks authored
- Remove unused FindUndefExpr::ProgramStateManager. - The Condition parameter of the callback is the terminator of the block, no need to retrieve it again. llvm-svn: 141027
-
Argyrios Kyrtzidis authored
Instead of always storing all source locations for the selector identifiers we check whether all the identifiers are in a "standard" position; "standard" position is -Immediately before the arguments: -(id)first:(int)x second:(int)y; -With a space between the arguments: -(id)first: (int)x second: (int)y; -For nullary selectors, immediately before ';': -(void)release; In such cases we infer the locations instead of storing them. llvm-svn: 140989
-
- Oct 02, 2011
-
-
Ted Kremenek authored
Fix LiveVariables analysis bug with MaterializeTemporaryExpr and fix handling in ExprEngine. Fixes <rdar://problem/10201666>. llvm-svn: 140956
-
- Oct 01, 2011
-
-
Anna Zaks authored
Address PR10616. The crash has already been fixed by Ted in r140725, so just refactor to use existing API + test case. llvm-svn: 140932
-
John McCall authored
to take a FunctionDecl* instead of an llvm::StringRef. Eventually we might push more logic in there, like using slightly different conventions for C++ methods. Also, fix a bug where 'copy' and 'create' were being caught in non-camel-cased strings. We want copyFoo and CopyFoo and XCopy but not Xcopy or xcopy. llvm-svn: 140911
-
- Sep 30, 2011
-
-
Ted Kremenek authored
Fix crash when analyzing C++ code involving constant enums and switch statements (<rdar://problem/10202899>). llvm-svn: 140844
-
Anna Zaks authored
[analyzer] Fix a bug in RetainReleaseChecker diagnostics. It gives more precise error message on the modified test case (and prevents duplicate diagnostics when we purge at block granularity). llvm-svn: 140840
-
Anna Zaks authored
[analyzer] Add -analyzer-purge option which can take on multiple values, remove -analyzer-purge=none. (Small refactor as well: move the work of constructing AnalysisManager from the callers to the class itself.) llvm-svn: 140838
-
- Sep 28, 2011
-
-
Ted Kremenek authored
llvm-svn: 140725
-
Anna Zaks authored
llvm-svn: 140648
-
- Sep 27, 2011
-
-
David Blaikie authored
llvm-svn: 140596
-
- Sep 26, 2011
-
-
David Blaikie authored
llvm-svn: 140492
-
David Blaikie authored
llvm-svn: 140478
-
- Sep 24, 2011
-
-
Benjamin Kramer authored
Patch by Rui Paulo! llvm-svn: 140448
-
- Sep 23, 2011
-
-
David Blaikie authored
llvm-svn: 140407
-
Anna Zaks authored
Move immutable map canonization out of the removeDeadBindings loop (via using ImmutableMapRef). Gives ~2% speedup. llvm-svn: 140403
-
David Blaikie authored
llvm-svn: 140367
-
- Sep 22, 2011
-
-
Anna Zaks authored
ST->scanReachableSymbols() is creating a SubRegionMap (SRM) on every call since one SRM is created in each ScanReachableSymbols instance. Creating the object just once and calling only scan inside the loop gives ~ 14% speed up of the StaticAnalyzer run (Release+Asserts). Pull out the declaration of the ScanReachableSymbols so that it can be used directly. Document ProgramState::scanReachableSymbols() methods. llvm-svn: 140323
-
- Sep 21, 2011
-
-
Anna Zaks authored
[analyzer] Fix a bug where PathDiagnosticLocation did not generate a valid range and add asserts to check validity of locations early on. Ignore invalid ranges in PathDiagnosticPiece (they could be added by checker writers). Addresses radar://10124836 and radar://radar10102244. llvm-svn: 140218
-
Anna Zaks authored
[analyzer] Refactor PathDiagnosticLocation: Remove SourceRange member from PathDiagnosticLocation - FullSourceLoc Loc and PathDiagnosticRange Range are sufficient. llvm-svn: 140206
-
Anna Zaks authored
[analyzer] Remove dead code. (This code is trying to implement the idea that PathDiagnosticClient could implement DiagnosticClient and has been dead for a while). llvm-svn: 140198
-
- Sep 20, 2011
-
-
Anna Zaks authored
[analyzer] Refactor PathDiagnosticLocation: Make PathDiagnosticLocation(SourceLocation...) private. Most of the effort here goes to making BugReport refer to a PathDiagnosticLocation instead of FullSourceLocation. (Another step closer to the goal of having Diagnostics which can recover from invalid SourceLocations.) llvm-svn: 140182
-
Anna Zaks authored
llvm-svn: 140180
-
Anna Zaks authored
[analyzer] Refactor PathDiagnosticLocation: Use PointerUnion of LocationContext and AnalysisContext to support creation of PathDiagnosticLocations for checkers which no context sensitivity. llvm-svn: 140162
-
Anna Zaks authored
llvm-svn: 140147
-
Anna Zaks authored
llvm-svn: 140146
-
Anna Zaks authored
[analyzer] Refactor PathDiagnosticLocation: Pre-compute Range and Location with gen methods on object creation instead of computing on demand. This would allow to remove dependency on the other members which help with construction and might not even be valid at later stages (to be removed later on). llvm-svn: 140131
-
Anna Zaks authored
llvm-svn: 140130
-
Anna Zaks authored
llvm-svn: 140100
-
- Sep 19, 2011
-
-
Argyrios Kyrtzidis authored
It already works (and is useful with) macro locs as well. llvm-svn: 140057
-
- Sep 16, 2011
-
-
Anna Zaks authored
[analyzer] Refactor: make PathDiagnosticLocation responsible for validation of SourceLocations (commit 5 of ?): - Get rid of PathDiagnosticLocation(SourceRange r,..) constructor by providing a bunch of create methods. - The PathDiagnosticLocation(SourceLocation L,..), which is used by crate methods, will eventually become private. - Test difference is in the case when the report starts at the beginning of the function. We used to represent that point as a range of the very first token in the first statement. Now, it's just a single location representing the first character of the first statement. llvm-svn: 139932
-
- Sep 15, 2011
-
-
Anna Zaks authored
[analyzer] Refactor: make PathDiagnosticLocation responsible for validation of SourceLocations (commit 4 of ?): - The closing brace is always a single location, not a range. - The test case previously had a location key 57:1 followed by a range [57:1 - 57:1]. llvm-svn: 139832
-