| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 81346
|
| |
|
|
|
|
| |
ActionGRExprEngine().
llvm-svn: 81064
|
| |
|
|
|
|
|
| |
Now AnalysisManager is the only place we can get CodeDecl.
This leads to an API change: GRState::bindExpr() now takes the CFG argument.
llvm-svn: 79980
|
| |
|
|
| |
llvm-svn: 79973
|
| |
|
|
| |
llvm-svn: 79502
|
| |
|
|
|
|
| |
and other core analysis logic will be untied to a particular Decl.
llvm-svn: 79420
|
| |
|
|
| |
llvm-svn: 79328
|
| |
|
|
|
|
| |
BugReporter.
llvm-svn: 79327
|
| |
|
|
|
|
|
|
|
| |
which allows custom checks to register callback creator functions for creating
BugReporterVisitor objects. This allows various checks to include diagnostics
such as 'assuming value is null' with little extra work. Eventually this API
should be refactored to be cleaner and more simple.
llvm-svn: 79302
|
| |
|
|
|
|
| |
merge ExplodedGraphImpl and ExplodedGraph.
llvm-svn: 78291
|
| |
|
|
|
|
|
| |
and their impl base classes. This can greatly simply some code of the core
analysis engine. This patch merges ExplodedNodeImpl into ExplodedNode.
llvm-svn: 78270
|
| |
|
|
| |
llvm-svn: 77447
|
| |
|
|
|
|
| |
valid SourceLocation.
llvm-svn: 77280
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Educate GRExprEngine::VisitGraph() about 'PreStmt'.
Mark the constructor of 'PostStmt' to be explicit, preventing implicit
conversions and the selection of the wrong 'generateNode' method in
GRStmtNodeBuilder.
Constify a bunch of arguments, which falls out of the changes to ProgramPoint.
llvm-svn: 76809
|
| |
|
|
| |
llvm-svn: 76092
|
| |
|
|
|
|
|
|
| |
subclasses.
Timings showed no significant difference before and after the commit.
llvm-svn: 74504
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
GRTransferFuncs had the conflated role of both constructing SVals (symbolic
expressions) as well as handling checker-specific logic. Now SValuator has the
role of constructing SVals from expressions and GRTransferFuncs just handles
checker-specific logic. The motivation is by separating these two concepts we
will be able to much more easily create richer constraint-generating logic
without coupling it to the main checker transfer function logic.
We now have one implementation of SValuator: SimpleSValuator.
SimpleSValuator is essentially the SVal-related logic that was in GRSimpleVals
(which is removed in this patch). This includes the logic for EvalBinOp,
EvalCast, etc. Because SValuator has a narrower role than the old
GRTransferFuncs, the interfaces are much simpler, and so is the implementation
of SimpleSValuator compared to GRSimpleVals. I also did a line-by-line review of
SVal-related logic in GRSimpleVals and cleaned it up while moving it over to
SimpleSValuator.
As a consequence of removing GRSimpleVals, there is no longer a
'-checker-simple' option. The '-checker-cfref' did everything that option did
but also ran the retain/release checker. Of course a user may not always wish to
run the retain/release checker, nor do we wish core analysis logic buried in the
checker-specific logic. The next step is to refactor the logic in CFRefCount.cpp
to separate out these pieces into the core analysis engine.
llvm-svn: 74229
|
| |
|
|
| |
llvm-svn: 73968
|
| |
|
|
|
|
| |
GRState->bindXXX and friends (and constify some arguments along the way).
llvm-svn: 73740
|
| |
|
|
|
|
| |
report in a bug equivalence class with the shortest path.
llvm-svn: 71920
|
| |
|
|
| |
llvm-svn: 71832
|
| |
|
|
|
|
|
| |
loop body when generating 'Looping back to the head of the loop'
diagnostics.
llvm-svn: 71829
|
| |
|
|
|
|
| |
PathDiagnosticEventPiece if the BugReport contained no explicit ranges.
llvm-svn: 71516
|
| |
|
|
|
|
| |
context when they are used as initialization code for loops.
llvm-svn: 71480
|
| |
|
|
|
|
| |
constructor for a single point, not a range.
llvm-svn: 71477
|
| |
|
|
|
|
| |
canonicalization locations and use this in both popLocation and rawAddEdge.
llvm-svn: 71470
|
| |
|
|
|
|
|
|
| |
- Improve -autorelease diagnostics.
- Improve VLA diagnostics.
- Use "short description" for bug when outputting to TextDiagnostics
llvm-svn: 71383
|
| |
|
|
| |
llvm-svn: 71135
|
| |
|
|
|
|
|
|
|
|
|
| |
'BugReporterVisitor'. This simplifies callbacks from BugReporter to BugReports
(via VisitNode). It also lays the foundation for arbitrary visitor "call backs"
that can be registered to a BugReporterContext as a PathDiagnostic is
constructed. These call backs can help operate as separate "experts" that can
work on constructed pieces of a PathDiagnostic for which they possess special
knowledge.
llvm-svn: 71121
|
| |
|
|
|
|
| |
start of 'do' and '@synchronized' statements.
llvm-svn: 71038
|
| |
|
|
|
|
|
| |
about Exprs that are not consumed and fix where the loop iteration diagnostic
goes.
llvm-svn: 71027
|
| |
|
|
|
|
| |
control-flow expressions as dead.
llvm-svn: 70887
|
| |
|
|
|
|
|
|
| |
location context. This allows us to postpone the decision of whether
or not a context should add a control-flow piece to the diagnostics
when inspecting its subexpressions.
llvm-svn: 70545
|
| |
|
|
| |
llvm-svn: 70542
|
| |
|
|
| |
llvm-svn: 70417
|
| |
|
|
|
|
|
|
|
| |
- Add an (optional) short description for BugReports for clients that want
to distinguish between long and short descriptions for bugs
- Make the bug report for VLA less obscene for Plist diagnostics by using
the short description
llvm-svn: 70415
|
| |
|
|
| |
llvm-svn: 70286
|
| |
|
|
|
|
| |
add "Looping back to the head of the loop" diagnostic for loops.
llvm-svn: 70285
|
| |
|
|
|
|
| |
can't track down.
llvm-svn: 70155
|
| |
|
|
| |
llvm-svn: 70144
|
| |
|
|
| |
llvm-svn: 70105
|
| |
|
|
|
|
| |
when popping location contexts.
llvm-svn: 69898
|
| |
|
|
|
|
| |
pieces for location contexts.
llvm-svn: 69895
|
| |
|
|
| |
llvm-svn: 69824
|
| |
|
|
|
|
| |
context.
llvm-svn: 69823
|
| |
|
|
|
|
|
|
| |
- Remove stale assertion that was breaking the test suite.
- When popping location contexts, only add a control-flow piece for fileID
locations.
llvm-svn: 69814
|
| |
|
|
|
|
| |
starts from the first character of the first statement.
llvm-svn: 69813
|
| |
|
|
|
|
|
|
| |
lazy PCH deserialization. Propagate that argument wherever it needs to
be. No functionality change, except that I've tightened up a few PCH
tests in preparation.
llvm-svn: 69406
|
| |
|
|
| |
llvm-svn: 68495
|
| |
|
|
|
|
| |
pieces between block entrance and block end unless necessary.
llvm-svn: 68483
|