| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
option enables new "internal" checks that will eventually be turned on
by default but still require broader testing.
llvm-svn: 88671
|
|
|
|
|
|
| |
overflow logic in GRExprEngineInternalChecks.cpp.
llvm-svn: 86877
|
|
|
|
| |
llvm-svn: 86837
|
|
|
|
|
|
| |
Now only one test case is XFAIL'ed.
llvm-svn: 86834
|
|
|
|
|
|
| |
BadCallChecker, making their implementations completely private.
llvm-svn: 86809
|
|
|
|
|
|
|
|
|
|
| |
the old builder API. This percolated a bunch of changes up to the
Checker class (where CheckLocation has been renamed VisitLocation) and
GRExprEngine. ProgramPoint now has the notion of a "LocationCheck"
point (with PreLoad and PreStore respectively), and a bunch of the old
ProgramPoints that are no longer used have been removed.
llvm-svn: 86798
|
|
|
|
| |
llvm-svn: 86538
|
|
|
|
| |
llvm-svn: 86529
|
|
|
|
| |
llvm-svn: 86523
|
|
|
|
|
|
|
| |
checker does not build sink nodes. Because svaluator computes an unknown value
for the subtraction now.
llvm-svn: 86517
|
|
|
|
|
|
| |
to GRExprEngineInternalChecks.cpp.
llvm-svn: 86292
|
|
|
|
| |
llvm-svn: 86288
|
|
|
|
| |
llvm-svn: 86252
|
|
|
|
|
|
|
|
|
| |
stack variable or a garbage
value into their own respective subclasses of Checker (and put them in .cpp files where their
implementation details are hidden from GRExprEngine).
llvm-svn: 86215
|
|
|
|
|
|
| |
catching such bugs closer to the source.
llvm-svn: 86003
|
|
|
|
| |
llvm-svn: 85996
|
|
|
|
|
|
| |
essentially two parts of the same check.
llvm-svn: 85911
|
|
|
|
|
|
|
|
| |
Split it to two checkers, one for undefined size,
the other for zero size, so that we don't need to query the size
when emitting the bug report.
llvm-svn: 85895
|
|
|
|
| |
llvm-svn: 85883
|
|
|
|
| |
llvm-svn: 85875
|
|
|
|
| |
llvm-svn: 85868
|
|
|
|
| |
llvm-svn: 85651
|
|
|
|
| |
llvm-svn: 85645
|
|
|
|
| |
llvm-svn: 85596
|
|
|
|
|
|
| |
GRExprEngineInternalChecks.cpp to a separate .cpp file.
llvm-svn: 85595
|
|
|
|
|
|
| |
small test case to show we handle dereferences of undefined values.
llvm-svn: 85492
|
|
|
|
|
|
|
|
| |
Add a CheckLocation() interface to Checker.
Now ImplicitNullDeref nodes are cached in NullDerefChecker.
More cleanups follow.
llvm-svn: 85471
|
|
|
|
| |
llvm-svn: 84824
|
|
|
|
| |
llvm-svn: 82672
|
|
|
|
|
|
| |
handled by the generic checking for undefined operands for BinaryOperators.
llvm-svn: 82019
|
|
|
|
|
|
|
| |
with binary operators. The result of a binary operator may be
undefined even if its operands are well-defined.
llvm-svn: 81874
|
|
|
|
|
|
|
|
|
|
|
|
| |
to statically type various methods in SValuator/GRState as required either a
defined value or a defined-but-possibly-unknown value. This leads to various
logic cleanups in GRExprEngine, and lets the compiler enforce via type checking
our assumptions about what symbolic values are possibly undefined and what are
not.
Along the way, clean up some of the static analyzer diagnostics regarding the uses of uninitialized values.
llvm-svn: 81579
|
|
|
|
| |
llvm-svn: 81346
|
|
|
|
|
|
|
| |
'dyn_cast' instead of 'cast' as the denominator value could be UnknownVal (and
is not guaranteed to be a DefinedVal).
llvm-svn: 80869
|
|
|
|
| |
llvm-svn: 80865
|
|
|
|
|
|
|
|
|
| |
Also fix a checker context bug: the Dst set is not always empty initially.
Because in GRExprEngine::CheckerVisit(), *CurrSet is used repeatedly.
So we removed the Dst.empty() condition in ~CheckerContext() when deciding
whether to do autotransision.
llvm-svn: 80786
|
|
|
|
|
|
| |
Now bad callee is checked as a PreVisit to the CallExpr.
llvm-svn: 80771
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
registerInitialVisitors
in the BugReport.
When all internal bug checking logic are moved to checkers, BuiltinBug will
not reference GRExprEngine, and FlushReports() will be not necessary, since
all bugs are emitted into the equivalent classes immediately.
For now just add a ctor with no arguments.
llvm-svn: 80770
|
|
|
|
| |
llvm-svn: 80644
|
|
|
|
| |
llvm-svn: 80417
|
|
|
|
|
|
|
| |
the condition. This eliminates a source of bugs where the client doesn't
correctly reason about undefined or unknown values. This fixes PR 4759.
llvm-svn: 79952
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
Some Builders need further cleanup.
llvm-svn: 78301
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
was created but not added to the destination NodeSet. This fixes PR 4630.
llvm-svn: 77353
|
|
|
|
| |
llvm-svn: 76924
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
| |
'Checker' interface. An updated test case illustrates that after calling a
function with the 'nonnull' attribute we now register the fact that the passed
pointer must be non-null. This retention of information was not possible with
the previously used GRSimpleAPICheck interface.
llvm-svn: 76797
|
|
|
|
|
|
| |
BugReporter API. No real functionality change.
llvm-svn: 76760
|
|
|
|
|
|
| |
Convert all clients to use the new predicate on Type.
llvm-svn: 76076
|