| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
BugReporter::EmitBasicReport interface.
llvm-svn: 53573
|
|
|
|
|
|
|
|
| |
simple bug diagnostics.
Refactored error reporting in CheckObjCDealloc and CheckObjCInstMethSignature to use this new bug reporting interface (major code simplification).
llvm-svn: 53560
|
|
|
|
|
|
|
|
|
| |
current store implementation is now encapsulated by BasicStore.
These changes prompted some long due constification of ValueState. Much of the
diffs in this patch include adding "const" qualifiers.
llvm-svn: 53423
|
|
|
|
|
|
|
|
| |
instead of references, because they can both fail
on functions we cannot construct full CFGs for yet.
llvm-svn: 53081
|
|
|
|
|
|
|
|
| |
ASTContext&, PathDiagnosticClient*, can be provided by an external source.
Split BugReporter into BugReporter and GRBugReporter so checkers not based on GRExprEngine can still use the BugReporter mechanism.
llvm-svn: 53048
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1) Check if a dead store appears as a subexpression. For such cases, we emit
a verbose diagnostic so that users aren't confused. This addresses:
<rdar://problem/5968508> checker gives misleading report for dead store in loop
2) Don't emit a dead store warning when assigning a null value to a pointer.
This is a common form of defensive programming. We may wish to make
this an option to the the checker one day.
This addresses the feature request in the following email:
http://lists.cs.uiuc.edu/pipermail/cfe-dev/2008-June/001978.html
llvm-svn: 52555
|
|
|
|
|
|
| |
distinguishes between the cases when we just evaluated the transfer function of a Stmt* (PostStmt) or performed a load (PostLoad). This solves a caching bug observed in a recent bug report.
llvm-svn: 52443
|
|
|
|
| |
llvm-svn: 52426
|
|
|
|
|
|
| |
aliases q".
llvm-svn: 51453
|
|
|
|
|
|
|
|
| |
accepts and ExplodedNode, and the other that accepts a ProgramPoint. The default behavior is to cache bug reports by the
location they occur (the end node). Subclasses can override this behavior by providing a different ProgramPoint.
llvm-svn: 51197
|
|
|
|
|
|
| |
"Execution continues..." message, which does a better job at handling corner cases.
llvm-svn: 50751
|
|
|
|
| |
llvm-svn: 50597
|
|
|
|
|
|
| |
object.
llvm-svn: 50553
|
|
|
|
| |
llvm-svn: 50549
|
|
|
|
|
|
| |
a CF memory leak occurred with GC enabled, etc.
llvm-svn: 50507
|
|
|
|
|
|
|
|
|
|
| |
empty CFGBlocks that only contained a terminator.
Added improved diagnostics for break and continue statements and default branches in switch statements.
This fixes <rdar://problem/5889244>.
llvm-svn: 50286
|
|
|
|
|
|
| |
of a switch statement that has no label.
llvm-svn: 50242
|
|
|
|
|
|
|
|
|
| |
Implemented support for better localized leaks in the CF reference count checker.
Now leaks should be flagged close to where they occur.
This should implement the desired functionality in <rdar://problem/5879592>, although the diagnostics still need to be improved.
llvm-svn: 50241
|
|
|
|
|
|
|
|
| |
that say that we are jumping to "case a" instead of "case 0".
This is a feature implementation for <rdar://problem/5880430>.
llvm-svn: 50197
|
|
|
|
| |
llvm-svn: 50195
|
|
|
|
|
|
| |
ExplodedGraph with a single path that BugReport objects can safely walk and introspect.
llvm-svn: 50194
|
|
|
|
|
|
| |
the line we are going to.
llvm-svn: 50113
|
|
|
|
|
|
|
|
|
|
| |
them to not be stack-allocated.
HTMLDiagnostics now batches PathDiagnostics before emitting HTML in its dtor.
This is a workaround for a problem when we trampled the Preprocessor state
when highlighting macros (sometimes resulting in an assertion failure).
llvm-svn: 50102
|
|
|
|
|
|
|
|
| |
PathDiagnostic as we did
before. This allows the HTMLDiagnostic object to retrieve the bug type, bug description, etc.
llvm-svn: 49939
|
|
|
|
| |
llvm-svn: 49934
|
|
|
|
|
|
|
|
| |
can decide the policy on how to cache related bugs. This allows us to
properly to handle warning about multiple leaks in the same location in the
ref count checker (not yet done).
llvm-svn: 49918
|
|
|
|
|
|
|
|
| |
Shuffled around code in CFRefCount to better pair classes with implementation,
and started adding subclasses of RangedBugReport to handle better diagnostics
for reference count bugs.
llvm-svn: 49889
|
|
|
|
| |
llvm-svn: 49887
|
|
|
|
|
|
|
|
| |
EmitPathWarning into one method. We now properly handle emitting warnings
without a PathDiagnosticClient when the warning does not involve a particular
statement.
llvm-svn: 49884
|
|
|
|
|
|
| |
the exit block of the CFG.
llvm-svn: 49880
|
|
|
|
| |
llvm-svn: 49668
|
|
|
|
|
|
| |
warnings are emitted as part of the warnings registered by GRSimpleVals.
llvm-svn: 49658
|
|
|
|
| |
llvm-svn: 49551
|
|
|
|
|
|
| |
BugReport-specific SourceRanges (when available).
llvm-svn: 49486
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Bugs are now reported using a combination of "BugType" (previously
BugDescription) and Bug "BugReport" objects, which are fed to BugReporter (which
generates PathDiagnostics). This provides a far more modular way of registering
bug types and plugging in diagnostics.
GRExprEngine now owns its copy of GRCoreEngine, and is not owned by the
ExplodedGraph.
ExplodedGraph is no longer templated on the "checker", but instead on the state
contained in the nodes.
llvm-svn: 49453
|
|
|
|
|
|
| |
checker-specific diagnostics.
llvm-svn: 49412
|
|
|
|
| |
llvm-svn: 49356
|
|
|
|
|
|
| |
the ranges of highlighted elements in the source code.
llvm-svn: 49181
|
|
|
|
|
|
| |
the new BugReporter interface.
llvm-svn: 49180
|
|
|
|
| |
llvm-svn: 49155
|
|
|
|
| |
llvm-svn: 49139
|
|
|
|
|
|
| |
BFS path to the root. This also avoids problems with loops in the ExplodedGraph.
llvm-svn: 49133
|
|
"BugReporter" and "BugDescription". BugDescription is used to describe
a bug and provide pieces of the PathDiagnostic, and BugReporter creates
the actual PathDiagnostic by crawling through the ExplodedGraph.
Migrated checks done by GRSimpleVals to be reported using the new BugReporter
mechanism.
llvm-svn: 49127
|