| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
| |
- 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
|
|
|
|
| |
llvm-svn: 68476
|
|
|
|
|
|
| |
contexts". This allows us to use a stack of contexts to keep track of what control-flow pieces to include when exiting blocks like 'if', 'for', etc.
llvm-svn: 68473
|
|
|
|
| |
llvm-svn: 68283
|
|
|
|
| |
llvm-svn: 68281
|
|
|
|
|
|
| |
enclosing statement when jumping to a subexpression.
llvm-svn: 68244
|
|
|
|
| |
llvm-svn: 68236
|
|
|
|
|
|
|
|
| |
- When processing BlockEdges with terminators, using the condition as the
control-flow point for terminators that are expressions (e.g., '&&', '?')
- When processing events, allow intra-compound statement "jumping"
llvm-svn: 68228
|
|
|
|
|
|
| |
start of the function/method.
llvm-svn: 68217
|
|
|
|
|
|
|
| |
intra-compound statement jumps unless they are between terminators (i.e.,
branches).
llvm-svn: 68216
|
|
|
|
|
|
|
|
|
| |
instead of a FullSourceLoc. This resulted in a bunch of small edits in various
clients.
- Updated BugReporter to include an alternate PathDiagnostic generation
algorithm for PathDiagnosticClients desiring more control-flow pieces.
llvm-svn: 68193
|
|
|
|
| |
llvm-svn: 68157
|
|
|
|
|
|
| |
refactoring to make this possible (no functionality change).
llvm-svn: 68141
|
|
|
|
| |
llvm-svn: 68052
|
|
|
|
|
|
|
| |
also makes this code more correct as it transparently handles SVals that wrapped
TypedViewRegions(SymbolicRegions).
llvm-svn: 68048
|
|
|
|
| |
llvm-svn: 67948
|
|
|
|
| |
llvm-svn: 67909
|
|
|
|
|
|
|
| |
etc., so that the "body" is always considered a top-level statement for edge
transitions (even if it is an expression).
llvm-svn: 67901
|
|
|
|
|
|
|
| |
successor, using 'getEnclosingStmt()' to have the end location be the top-level
Stmt* enclosing the target Expr*.
llvm-svn: 67869
|
|
|
|
|
|
| |
PathDiagnosticLocation.
llvm-svn: 67866
|
|
|
|
|
|
|
|
| |
- Added an internal helper class 'PathDiagnosticBuilder' which now bundles the
'ExecutionContinues' methods.
- Added preliminary diagnostics for short-circuit '&&' and '||'
llvm-svn: 67822
|
|
|
|
|
|
| |
- Have PathDiagnosticControlFlowPiece use a vector of PathDiagnosticLocationPairs to represent transitions.
llvm-svn: 67786
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Zhongxing and I discussed by email.
Main changes:
- Removed SymIntConstraintVal and SymIntConstraint
- Added SymExpr as a parent class to SymbolData, SymSymExpr, SymIntExpr
- Added nonloc::SymExprVal to wrap SymExpr
- SymbolRef is now just a typedef of 'const SymbolData*'
- Bunch of minor code cleanups in how some methods were invoked (no functionality change)
This changes are part of a long-term plan to have full symbolic expression
trees. This will be useful for lazily evaluating complicated expressions.
llvm-svn: 67731
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
ExplodedGraph::TrimGraph:
- Just do a DFS both ways instead of BFS-DFS. We're just determining what subset
of the nodes are reachable from the root and reverse-reachable from the bug
nodes. DFS is more efficient for this task.
BugReporter:
- MakeReportGraph: Do a reverse-BFS instead of a reverse-DFS to determine the
approximate shortest path through the simulation graph. We were seeing some
weird cases where too many loops were being reported for simple bugs. Possibly
we will need to replace this with actually computing the shortest path in
terms of line numbers.
llvm-svn: 66842
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- PathDiagnosticControlFlowPiece now consists of a "start" and "end" location
to indicating the branch location and where the branch goes.
BugReporter:
- Updated BugReporter to construct PathDiagnosticControlFlowPiece objects with
"end" locations.
PlistDiagnostics:
- Plists now contain the bug "type" (not just bug "category")
- Plists now encode control-flow pieces differently than events; now the
"start" and "end" locations are recorded
llvm-svn: 66818
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Group control flow and event PathDiagnosticPieces into PathDiagnosticMacroPieces.
- Afterwards, eliminate any PathDiagnosticMacroPieces from a PathDiagnostic that
contain no informative events.
HTMLDiagnostics:
- Use new information about PathDiagnosticMacroPieces to specially format
message bubbles for macro expansions containing interesting events.
llvm-svn: 66524
|
|
|
|
|
|
|
|
| |
PathDiagnosticControlFlowPiece to distinguish (in the class hierarchy) between
events and control-flow diagnostic pieces. Clients must now use these directly
when constructing PathDiagnosticPieces.
llvm-svn: 66310
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Store bindings using a MemRegion -> SVal binding instead of VarDecl -> SVal
binding. This mirrors some of the idea of RegionStore, but is far simpler and
not nearly as functional. This leads to some code simplification and
some potential for some minor precision hacks.
Along the way...
- constify the use of MemRegion* in a few places
- add operator<<(llvm::raw_ostream, const MemRegion*)
llvm-svn: 66163
|
|
|
|
|
|
|
|
|
|
|
| |
SVal::getAsLocSymbol(). This simplifies the code and allows the retain/release
checker to (I believe) also correctly reason about location symbols wrapped in
SymbolicRegions.
Along the way I cleaned up SymbolRef a little, disallowing implicit casts to
'unsigned'.
llvm-svn: 65972
|
|
|
|
|
|
| |
"ControlFlow".
llvm-svn: 65876
|
|
|
|
|
|
| |
'.' or '->'.
llvm-svn: 65651
|
|
|
|
| |
llvm-svn: 65568
|
|
|
|
|
|
| |
- No functionality change.
llvm-svn: 65560
|
|
|
|
|
|
| |
'method' or 'funciton'.
llvm-svn: 65346
|
|
|
|
|
|
| |
case where an "Execution continues..." diagnostic could result in an empty message bubble.
llvm-svn: 65342
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
back to the summary used when evaluating the statement associated with a
simulation node. This is now being used to help improve the checker's
diagnostics. To get things started, the checker now emits a path diagnostic
indicating that 'autorelease' is a no-op in GC mode.
Some of these changes are exposing further grossness in the interface between
BugReporter and the ExplodedGraph::Trim facilities. These really need to be
cleaned up one day.
llvm-svn: 64881
|