#
1aa2bf8e |
| 18-Jan-2019 |
George Karpenkov <ekarpenkov@apple.com> |
[analyzer] Extend BugType constructor to accept "SuppressOnSink" as a parameter
Differential Revision: https://reviews.llvm.org/D56884
llvm-svn: 351510
|
#
76a21502 |
| 15-Dec-2018 |
Kristof Umann <dkszelethus@gmail.com> |
[analyzer][NFC] Move CheckerRegistry from the Core directory to Frontend
ClangCheckerRegistry is a very non-obvious, poorly documented, weird concept. It derives from CheckerRegistry, and is placed
[analyzer][NFC] Move CheckerRegistry from the Core directory to Frontend
ClangCheckerRegistry is a very non-obvious, poorly documented, weird concept. It derives from CheckerRegistry, and is placed in lib/StaticAnalyzer/Frontend, whereas it's base is located in lib/StaticAnalyzer/Core. It was, from what I can imagine, used to circumvent the problem that the registry functions of the checkers are located in the clangStaticAnalyzerCheckers library, but that library depends on clangStaticAnalyzerCore. However, clangStaticAnalyzerFrontend depends on both of those libraries.
One can make the observation however, that CheckerRegistry has no place in Core, it isn't used there at all! The only place where it is used is Frontend, which is where it ultimately belongs.
This move implies that since include/clang/StaticAnalyzer/Checkers/ClangCheckers.h only contained a single function:
class CheckerRegistry;
void registerBuiltinCheckers(CheckerRegistry ®istry);
it had to re purposed, as CheckerRegistry is no longer available to clangStaticAnalyzerCheckers. It was renamed to BuiltinCheckerRegistration.h, which actually describes it a lot better -- it does not contain the registration functions for checkers, but only those generated by the tblgen files.
Differential Revision: https://reviews.llvm.org/D54436
llvm-svn: 349275
show more ...
|
Revision tags: llvmorg-7.0.1, llvmorg-7.0.1-rc3, llvmorg-7.0.1-rc2, llvmorg-7.0.1-rc1 |
|
#
c82d457d |
| 28-Sep-2018 |
George Karpenkov <ekarpenkov@apple.com> |
[analyzer] [NFC] Remove unused parameters, as found by -Wunused-parameter
Differential Revision: https://reviews.llvm.org/D52640
llvm-svn: 343353
|
Revision tags: llvmorg-7.0.0, llvmorg-7.0.0-rc3, llvmorg-7.0.0-rc2, llvmorg-7.0.0-rc1 |
|
#
70ec1dd1 |
| 26-Jun-2018 |
George Karpenkov <ekarpenkov@apple.com> |
[analyzer] Do not run visitors until the fixpoint, run only once.
In the current implementation, we run visitors until the fixed point is reached. That is, if a visitor adds another visitor, the cur
[analyzer] Do not run visitors until the fixpoint, run only once.
In the current implementation, we run visitors until the fixed point is reached. That is, if a visitor adds another visitor, the currently processed path is destroyed, all diagnostics is discarded, and it is regenerated again, until it's no longer modified. This pattern has a few negative implications:
- This loop does not even guarantee to terminate. E.g. just imagine two visitors bouncing a diagnostics around. - Performance-wise, e.g. for sqlite3 all visitors are being re-run at least 10 times for some bugs. We have already seen a few reports where it leads to timeouts. - If we want to add more computationally intense visitors, this will become worse. - From architectural standpoint, the current layout requires copying visitors, which is conceptually wrong, and can be annoying (e.g. no unique_ptr on visitors allowed).
The proposed change is a much simpler architecture: the outer loop processes nodes upwards, and whenever the visitor is added it only processes current nodes and above, thus guaranteeing termination.
Differential Revision: https://reviews.llvm.org/D47856
llvm-svn: 335666
show more ...
|
Revision tags: llvmorg-6.0.1, llvmorg-6.0.1-rc3, llvmorg-6.0.1-rc2, llvmorg-6.0.1-rc1 |
|
#
f1a0ff75 |
| 30-Mar-2018 |
Henry Wong <movietravelcode@outlook.com> |
[analyzer] Remove the unused method declaration in `ValistChecker.cpp`.
Summary: `getVariableNameFromRegion()` seems useless.
Reviewers: xazax.hun, george.karpenkov
Reviewed By: xazax.hun
Subscri
[analyzer] Remove the unused method declaration in `ValistChecker.cpp`.
Summary: `getVariableNameFromRegion()` seems useless.
Reviewers: xazax.hun, george.karpenkov
Reviewed By: xazax.hun
Subscribers: szepet, rnkovacs, a.sidorin, cfe-commits, MTC
Differential Revision: https://reviews.llvm.org/D45081
llvm-svn: 328860
show more ...
|
Revision tags: llvmorg-5.0.2, llvmorg-5.0.2-rc2, llvmorg-5.0.2-rc1, llvmorg-6.0.0, llvmorg-6.0.0-rc3, llvmorg-6.0.0-rc2 |
|
#
d703ec94 |
| 17-Jan-2018 |
George Karpenkov <ekarpenkov@apple.com> |
[analyzer] introduce getSVal(Stmt *) helper on ExplodedNode, make sure the helper is used consistently
In most cases using `N->getState()->getSVal(E, N->getLocationContext())` is ugly, verbose, and
[analyzer] introduce getSVal(Stmt *) helper on ExplodedNode, make sure the helper is used consistently
In most cases using `N->getState()->getSVal(E, N->getLocationContext())` is ugly, verbose, and also opens up more surface area for bugs if an inconsistent location context is used.
This patch introduces a helper on an exploded node, and ensures consistent usage of either `ExplodedNode::getSVal` or `CheckContext::getSVal` across the codebase. As a result, a large number of redundant lines is removed.
Differential Revision: https://reviews.llvm.org/D42155
llvm-svn: 322753
show more ...
|
Revision tags: llvmorg-6.0.0-rc1 |
|
#
b77bc6bb |
| 06-Jan-2018 |
Gabor Horvath <xazax.hun@gmail.com> |
[analyzer] Fix some check's output plist not containing the check name
Differential Revision: https://reviews.llvm.org/D41538
llvm-svn: 321933
|
Revision tags: llvmorg-5.0.1, llvmorg-5.0.1-rc3, llvmorg-5.0.1-rc2, llvmorg-5.0.1-rc1, llvmorg-5.0.0, llvmorg-5.0.0-rc5, llvmorg-5.0.0-rc4, llvmorg-5.0.0-rc3, llvmorg-5.0.0-rc2, llvmorg-5.0.0-rc1, llvmorg-4.0.1, llvmorg-4.0.1-rc3, llvmorg-4.0.1-rc2 |
|
#
b6a513d1 |
| 03-May-2017 |
Artem Dergachev <artem.dergachev@gmail.com> |
[analyzer] Fix memory error bug category capitalization.
It was written as "Memory Error" in most places and as "Memory error" in a few other places, however it is the latter that is more consistent
[analyzer] Fix memory error bug category capitalization.
It was written as "Memory Error" in most places and as "Memory error" in a few other places, however it is the latter that is more consistent with other categories (such as "Logic error").
rdar://problem/31718115
Differential Revision: https://reviews.llvm.org/D32702
llvm-svn: 302016
show more ...
|
Revision tags: llvmorg-4.0.1-rc1 |
|
#
60eec1ac |
| 13-Mar-2017 |
Gabor Horvath <xazax.hun@gmail.com> |
[analyzer] Fix a rare crash for valist check.
It looks like on some host-triples the result of a valist related expr can be a LazyCompoundVal. Handle that case in the check.
Patch by Abramo Bagnara
[analyzer] Fix a rare crash for valist check.
It looks like on some host-triples the result of a valist related expr can be a LazyCompoundVal. Handle that case in the check.
Patch by Abramo Bagnara!
llvm-svn: 297619
show more ...
|
Revision tags: llvmorg-4.0.0, llvmorg-4.0.0-rc4 |
|
#
dbf2790a |
| 07-Mar-2017 |
Gabor Horvath <xazax.hun@gmail.com> |
[analyzer] Improve valist checks and move it out from alpha state.
This patch makes the valist check more robust to the different AST variants on different platforms and also fixes a FIXME.
Differe
[analyzer] Improve valist checks and move it out from alpha state.
This patch makes the valist check more robust to the different AST variants on different platforms and also fixes a FIXME.
Differential Revision: https://reviews.llvm.org/D30157
llvm-svn: 297153
show more ...
|
Revision tags: llvmorg-4.0.0-rc3, llvmorg-4.0.0-rc2, llvmorg-4.0.0-rc1 |
|
#
0a0c275f |
| 05-Jan-2017 |
David Blaikie <dblaikie@gmail.com> |
Migrate PathDiagnosticPiece to std::shared_ptr
Simplifies and makes explicit the memory ownership model rather than implicitly passing/acquiring ownership.
llvm-svn: 291143
|
Revision tags: llvmorg-3.9.1, llvmorg-3.9.1-rc3, llvmorg-3.9.1-rc2, llvmorg-3.9.1-rc1, llvmorg-3.9.0, llvmorg-3.9.0-rc3 |
|
#
b59b2704 |
| 22-Aug-2016 |
Gabor Horvath <xazax.hun@gmail.com> |
Reapply "[analyzer] Added valist related checkers."
Differential Revision: https://reviews.llvm.org/D15227
llvm-svn: 279427
|
Revision tags: llvmorg-3.9.0-rc2 |
|
#
56e8aa53 |
| 18-Aug-2016 |
Gabor Horvath <xazax.hun@gmail.com> |
[analyzer] Added valist related checkers.
Differential Revision: https://reviews.llvm.org/D15227
llvm-svn: 279041
|