| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
reported in PR 8458.
llvm-svn: 117300
|
|
|
|
|
|
| |
obsolete code.
llvm-svn: 117161
|
|
|
|
| |
llvm-svn: 117104
|
|
|
|
|
|
|
|
|
| |
that it is
nil. Otherwise we can get false paths where a second @synchronized using the mutex
can have a bogus warning. Fixes <rdar://problem/8578650>.
llvm-svn: 117016
|
|
|
|
| |
llvm-svn: 116995
|
|
|
|
|
|
| |
subsumed by the Checker interface.
llvm-svn: 116973
|
|
|
|
| |
llvm-svn: 116971
|
|
|
|
|
|
|
|
| |
object is not referenced later in the path,
not that it isn't referenced later in the code. Fixes <rdar://problem/8527839>.
llvm-svn: 116636
|
|
|
|
|
|
|
| |
'super' as receiver of property or a setter/getter
methods. //rdar: //8525788
llvm-svn: 116483
|
|
|
|
| |
llvm-svn: 116473
|
|
|
|
| |
llvm-svn: 116189
|
|
|
|
| |
llvm-svn: 116164
|
|
|
|
|
|
| |
Lei Zhang.
llvm-svn: 116163
|
|
|
|
|
|
|
|
|
|
| |
- Fixed some iterator style issues
- Don't process blocks that have been visited already
- Fixed a case where a unreachable block cycle was not reported
- Minor test case changes
- Added one test case from flow-sensitive version of the check. More coming.
llvm-svn: 115861
|
|
|
|
|
|
| |
Checker. It does not use any AST Stmt hooks, only VisitEndAnalysis.
llvm-svn: 115345
|
|
|
|
|
|
|
| |
-cfg-add-implicit-dtors - sets CFG::BuildOptions::AddImplicitDtors for AnalysisCosumer to true,
-cfg-add-initializers - sets CFG::BuildOptions::AddInitializers for AnalysisCosumer to true.
llvm-svn: 115142
|
|
|
|
| |
llvm-svn: 115120
|
|
|
|
|
| |
Fixes: <rdar://problem/7513117>
llvm-svn: 115113
|
|
|
|
|
|
|
| |
- Use BlockEntrance rather than BlockEdge to bring in line with UnreachableCodeChecker. Fixes an issue where unreached blocks would still be counted as reachable.
- Added warnings for all BlockAborted locations. This allows us to see where the analyzer stopped analyzing.
llvm-svn: 115110
|
|
|
|
|
|
| |
analyzer to completely analyze a worklist regardless of time taken.
llvm-svn: 115108
|
|
|
|
|
|
| |
VisitCXXMemberCallExpr(). Ideally we should unify these code paths as much as possible, since they only differ by a few details.
llvm-svn: 114628
|
|
|
|
|
|
| |
AnalyzerStatsChecker.
llvm-svn: 114581
|
|
|
|
| |
llvm-svn: 114246
|
|
|
|
|
|
| |
by a sink. This fixes some false positives that were flagged because a path was incomplete (usually in a loop).
llvm-svn: 114244
|
|
|
|
|
|
| |
the assumption that EndNode == ErrorNode, but upcoming changes will break this.
llvm-svn: 114065
|
|
|
|
|
|
| |
and discussions with Ted and Jordy.
llvm-svn: 114056
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
can be used as
the index when the value evaluation isn't powerful enough. By creating ElementRegions with
UnknownVals as the index, this gives the false impression that they are the same element, when
they really aren't. This becomes really problematic when deriving symbols from these regions
(e.g., those representing the initial value of the index), since two different indices will
get the same symbol for their binding.
This fixes an issue with the idempotent operations checker that would cause two indices that
are clearly not the same to make it appear as if they always had the same value.
Fixes <rdar://problem/8431728>.
llvm-svn: 113920
|
|
|
|
|
|
| |
account typedefs.
llvm-svn: 113893
|
|
|
|
|
|
|
|
| |
the size of a VLA. We don't track VLA extents yet,
but we should at least not crash. Fixes <rdar://problem/8424269>.
llvm-svn: 113888
|
|
|
|
|
|
| |
that we aborted analysis may not necessarily be due to a loop.
llvm-svn: 113862
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
instead"
This reverts commit r113631
Conflicts:
CMakeLists.txt
lib/CodeGen/CMakeLists.txt
llvm-svn: 113817
|
|
|
|
|
|
| |
of whatever we were using before...
llvm-svn: 113631
|
|
|
|
| |
llvm-svn: 113627
|
|
|
|
|
|
| |
up <rdar://problem/6352035>.
llvm-svn: 113612
|
|
|
|
| |
llvm-svn: 113574
|
|
|
|
|
|
| |
mutex can be nil
llvm-svn: 113573
|
|
|
|
|
|
| |
for checkers).
llvm-svn: 113572
|
|
|
|
|
|
| |
statistics about analysis. Running clang with the -analyzer-stats flag will emit warnings containing the information. We can then run a postanalysis script to take this data and give useful information about how much the analyzer missed in a project.
llvm-svn: 113568
|
|
|
|
|
|
|
| |
value in a function call.
Fixes: <rdar://problem/8409480> “warning: Pass-by-value argument in function call is undefined” message can be improved
llvm-svn: 113554
|
|
|
|
|
|
|
|
|
|
| |
trimmed graph (in BugReporter). This fixes a problem where a leak that happened to occur on both an exit() path and a non-exit() path was getting reported with the exit() path (which users don't care about).
This fixes:
<rdar://problem/8331641> leak reports should not show paths that end with exit() (but ones that don't end with exit())
llvm-svn: 113524
|
|
|
|
| |
llvm-svn: 113489
|
|
|
|
| |
llvm-svn: 113482
|
|
|
|
|
|
|
|
|
|
|
| |
this fixes all analyser test failures in my gcc34-based
environment
how the cast result could bind to the non-const ref is
somewhat mysterious and remains to be investigated; to
avoid similar miscompilations (by gcc34 only?)
llvm-svn: 113480
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The end result is now we eagarly constant-fold symbols in the analyzer that are perfectly constrained
to be a constant value. This allows us to recover some path-sensitivity in some cases by lowering
the required level of reasoning power needed to evaluate some expressions.
The net win from this change is that the false positive in PR 8015 is fixed, and we also
find more idempotent operations bugs.
We do, however, regress with the BugReporterVisitors, which need to be modified to understand
this constant folding (and look past it). This causes some diagnostic regressions in plist-output.m
which will get addressed in a future patch. plist-output.m is now marked XFAIL, while
plist-output-alternate.m now tests that the plist output is working, but with the suboptimal
diagnostics. This second test file will eventually be removed.
llvm-svn: 113477
|
|
|
|
|
|
|
|
|
|
| |
helper function for path display.
- Created private class CFGReachabilityAnalysis, which provides cached reachability lookups in the CFG
- Simplified PathWasCompletelyAnalyzed to use the new reachability class
- Added getLastRelevantNodes function for future use with path displaying in BugReporter
llvm-svn: 113465
|
|
|
|
|
|
| |
consider default case live if all enum values are covered
llvm-svn: 113457
|
|
|
|
| |
llvm-svn: 113444
|
|
|
|
|
|
| |
and simplify surrounding checking logic.
llvm-svn: 113282
|
|
|
|
|
|
| |
added a test case.
llvm-svn: 113269
|
|
|
|
|
|
|
|
|
| |
should probably be removed if it has no purpose, but I just #if'd it out
in case it's usefulIdempotentOperationChecker::isTruncationExtensionAssignment
should probably be removed if it has no purpose, but I just #if'd it out
in case it's useful
llvm-svn: 112949
|