| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
llvm-svn: 142885
|
|
|
|
|
|
| |
Renamed PureNodeBuilder->StmtNodeBuilder.
llvm-svn: 142849
|
|
|
|
|
|
|
| |
- OSAtomicChecker
- ExprEngine::processStmt
llvm-svn: 142846
|
|
|
|
|
|
| |
accurate, but it frees up the name AnalysisContext for other uses.
llvm-svn: 142782
|
|
|
|
|
|
| |
NodeBuilder should not assume it's dealing with a single predecessor. Remove predecessor getters. Modify the BranchNodeBuilder to not be responsible for doing auto-transitions (which depend on a predecessor).
llvm-svn: 142453
|
|
|
|
|
|
| |
ExprEngineBuilders is not used.
llvm-svn: 142450
|
|
|
|
|
|
| |
Take advantage of the new builders for branch processing. As part of this change pass generic NodeBuilder (instead of BranchNodeBuilder) to the BranchCondition callback and remove the unused methods form BranchBuilder.
llvm-svn: 142448
|
|
|
|
| |
llvm-svn: 142444
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
responsible for generating the node frontier.
Currently we have a bunch of different node builders which provide some common
functionality but are difficult to refactor. Each builder generates nodes of
different kinds and calculates the frontier nodes, which should be propagated
to the next step (after the builder dies).
Introduce a new NodeBuilder which provides very basic node generation facilities
but takes care of the second problem. The idea is that all the other builders
will eventually use it. Use this builder in CheckerContext instead of
StmtNodeBuilder (the way the frontier is propagated to the StmtBuilder
is a hack and will be removed later on).
llvm-svn: 142443
|
|
|
|
|
|
|
|
| |
of a pointer.
Passing a pointer was a bad idea as it collides with the overload for void*.
llvm-svn: 141971
|
|
|
|
| |
llvm-svn: 141678
|
|
|
|
|
|
|
|
| |
PR11053 (http://llvm.org/bugs/show_bug.cgi?id=11053).
A patch by Graham Lee!
llvm-svn: 141643
|
|
|
|
|
|
|
|
|
|
|
| |
- Remodel Expr::EvaluateAsInt to behave like the other EvaluateAs* functions,
and add Expr::EvaluateKnownConstInt to capture the current fold-or-assert
behaviour.
- Factor out evaluation of bitfield bit widths.
- Fix a few places which would evaluate an expression twice: once to determine
whether it is a constant expression, then again to get the value.
llvm-svn: 141561
|
|
|
|
|
|
| |
mechanism to lazily create analyses that are attached to AnalysisContext objects.
llvm-svn: 141425
|
|
|
|
|
|
|
| |
for better self-documenting code, since the semantics
are subtly different from getDefinition().
llvm-svn: 141355
|
|
|
|
| |
llvm-svn: 141267
|
|
|
|
|
|
| |
method itself.
llvm-svn: 141262
|
|
|
|
|
|
| |
used when they were meant to be. Fixes <rdar://problem/10241614>.
llvm-svn: 141250
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
CheckerContext to generate the nodes.
llvm-svn: 141136
|
|
|
|
|
|
| |
can obtain block count directly from the Context.
llvm-svn: 141112
|
|
|
|
| |
llvm-svn: 141098
|
|
|
|
|
|
| |
BinaryOperator tracked) from IdempotentOperationChecker.
llvm-svn: 141045
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
- 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
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
precise error message on the modified test case (and prevents duplicate diagnostics when we purge at block granularity).
llvm-svn: 140840
|
|
|
|
| |
llvm-svn: 140648
|
|
|
|
|
|
| |
Patch by Rui Paulo!
llvm-svn: 140448
|
|
|
|
| |
llvm-svn: 140367
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
| |
of SourceLocations (commit 2 of ?):
- Fix a fixme and move the logic of creating a PathDiagnosticLocation corresponding to a ProgramPoint into a PathDiagnosticLocation constructor.
- Rename PathDiagnosticLocation::create to differentiate from the added constructor.
llvm-svn: 139825
|
|
|
|
|
|
|
|
|
| |
of SourceLocations (commit 2 of ?):
- Modify all PathDiagnosticLocation constructors that take Stmt to also requre LocationContext.
- Add a constructor which should be used in case there is no valid statement/location (it will grab the location of the enclosing function).
llvm-svn: 139763
|
|
|
|
|
|
| |
valid object given an ExploadedNode (the same logic can be reused by other checkers).
llvm-svn: 139672
|
|
|
|
|
|
|
|
|
|
| |
language options. Use that .def file to declare the LangOptions class
and initialize all of its members, eliminating a source of annoying
initialization bugs.
AST serialization changes are next up.
llvm-svn: 139605
|
|
|
|
| |
llvm-svn: 139078
|
|
|
|
|
|
| |
And with that, TransferFuncs is gone!
llvm-svn: 139003
|
|
|
|
|
|
| |
to RetainCountChecker...and clean up the file while I'm at it.
llvm-svn: 139002
|
|
|
|
|
|
|
|
|
|
| |
current analysis from CFRefCount to ExprEngine.
Remove TransferFuncs from ExprEngine and AnalysisConsumer.
Demote RetainReleaseChecker to a regular checker, and give it the name osx.cocoa.RetainCount (class name change coming shortly). Update tests accordingly.
llvm-svn: 138998
|
|
|
|
|
|
|
|
| |
builtin types (When requested). This is another step toward making
ASTUnit build the ASTContext as needed when loading an AST file,
rather than doing so after the fact. No actual functionality change (yet).
llvm-svn: 138985
|
|
|
|
|
|
|
|
| |
free() is returned by realloc(). Most code expect NULL.
And we only need to transfer one final ProgramState.
llvm-svn: 138937
|
|
|
|
|
|
| |
arguments. Thanks, Joerg.
llvm-svn: 138875
|
|
|
|
|
|
| |
existing API. Thanks Jordy.
llvm-svn: 138765
|
|
|
|
|
|
| |
on the previous commit.)
llvm-svn: 138762
|
|
|
|
|
|
|
|
| |
when analyzing ICU.
Patch by Jean-Daniel Dupas. Thanks for spotting and fixing!
llvm-svn: 138757
|
|
|
|
|
|
|
|
|
|
| |
explicitly requested for invalidation.
Also, allow CallOrObjCMessage to wrap a CXXConstructExpr as well.
Finally, this allows us to remove the clunky whitelisting system from CFRefCount/RetainReleaseChecker. Slight regression due to CXXNewExprs not yet being handled in post-statement callbacks (PR forthcoming).
llvm-svn: 138716
|
|
|
|
|
|
|
|
| |
Also convert stack-addr-ps.cpp to use the analyzer instead of just Sema, now
that it doesn't crash, and extract the stack-block test into another file since
it errors, and that prevents the analyzer from running.
llvm-svn: 138613
|
|
|
|
| |
llvm-svn: 138535
|