| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
there as well.
llvm-svn: 53743
|
|
|
|
| |
llvm-svn: 53740
|
|
|
|
|
|
| |
of the methods only return an RVal; we want them to be able to create an arbitrary number of states.
llvm-svn: 53739
|
|
|
|
|
|
| |
"batch auditor" to dispatch to specialized auditors instead of having a separate vector for each audited Expr*. This not only provides a much cleaner implementation, but also allows us to install auditors for any expression.
llvm-svn: 53464
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 53343
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
creator.
This allows an optimization in AnalysisConsumer where the same LiveVariables information is used between multiple analyses.
llvm-svn: 53046
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
have complex RValues yet, so this logic is only fully implemented when __imag__
and __real__ are used on non-complex types.
llvm-svn: 52501
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
Patch by David Chisnall!
llvm-svn: 52422
|
|
|
|
|
|
|
|
|
|
| |
EvalLoad should bind to the UnaryOperator*, not its subexpression.
Added test case to exercise this fix when checking for uses of uninitialized values.
Patch by Zhongxing Xu!
llvm-svn: 51377
|
|
|
|
| |
llvm-svn: 51214
|
|
|
|
| |
llvm-svn: 51213
|
|
|
|
| |
llvm-svn: 51212
|
|
|
|
|
|
| |
to use IsLValType when conjuring symbols for return values (this fixes a bug with an assertion firing in the analyzer when two qualified objective-c types were compared).
llvm-svn: 50924
|
|
|
|
| |
llvm-svn: 50579
|
|
|
|
|
|
| |
treat these as panic functions.
llvm-svn: 50535
|
|
|
|
| |
llvm-svn: 50530
|
|
|
|
|
|
| |
should catch this one easily.
llvm-svn: 50526
|
|
|
|
|
|
| |
temporaries.
llvm-svn: 50502
|
|
|
|
| |
llvm-svn: 50500
|
|
|
|
|
|
| |
sizeof of a ObjCInterfaceType.
llvm-svn: 50499
|
|
|
|
| |
llvm-svn: 50497
|
|
|
|
| |
llvm-svn: 50494
|
|
|
|
| |
llvm-svn: 50493
|
|
|
|
|
|
| |
Add db_error as panic function.
llvm-svn: 50489
|
|
|
|
| |
llvm-svn: 50466
|
|
|
|
| |
llvm-svn: 50453
|
|
|
|
|
|
|
|
| |
from other Lvalues.
This removes the failure in null-deref-ps.c (test suite).
llvm-svn: 50449
|
|
|
|
|
|
|
|
|
|
|
|
| |
EvalStore/EvalLoad to handle all loads/stores from symbolic memory, allowing us
to do checks for null dereferences, etc., at any arbitrary load/store (these
were missed checks before). This also resulted in some major cleanups, some
conceptual, and others just in the structure of the code.
This temporarily introduces a regression in the test suite (null-deref-ps.c)
before I add a new LVal type for structure fields.
llvm-svn: 50443
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
symbols.
llvm-svn: 50233
|
|
|
|
|
|
| |
function logic to act when symbols become dead.
llvm-svn: 50221
|
|
|
|
|
|
|
|
|
|
| |
Problem:
In the recently refactored VisitDeref (which processes dereferences), we
were incorrectly skipping the node just generated for the subexpression
of the dereference. This was a horrible regression.
llvm-svn: 50176
|
|
|
|
|
|
| |
always be taken even if it was not feasible.
llvm-svn: 50132
|
|
|
|
| |
llvm-svn: 50119
|
|
|
|
| |
llvm-svn: 50112
|
|
|
|
| |
llvm-svn: 50109
|
|
|
|
|
|
| |
integers, allowing us to track lvals when they are casted back to pointers.
llvm-svn: 50108
|
|
|
|
| |
llvm-svn: 50091
|
|
|
|
| |
llvm-svn: 50089
|
|
|
|
| |
llvm-svn: 50083
|
|
|
|
|
|
| |
where "x" is NULL.
llvm-svn: 50071
|
|
|
|
|
|
| |
compiler warning introduced by a recent patch of mine.
llvm-svn: 49917
|
|
|
|
| |
llvm-svn: 49914
|
|
|
|
|
|
|
|
| |
from registered BugTypes. This helps with debugging.
Add detection of NULL values in ref count checker; this suppresses false positives.
llvm-svn: 49912
|
|
|
|
|
|
| |
the checker-specific logic of symbolic assumptions.
llvm-svn: 49910
|
|
|
|
|
|
| |
object.
llvm-svn: 49826
|