CLAZY(1) | KDAB | CLAZY(1) |
clazy - a static source code analyzer for Qt5-based C++.
clazy [option] [clang++-options]
clazy scans C++/Qt source code looking for issues related to good coding practice with of Qt5. In typical use, during code compilation with clazy you will see any such warnings printed to the output normally as you would find any compiler warnings.
clazy has the ability to "fix" the offending code in some cases. See the CLAZY_FIXIT environment variable description below for more information.
Any of the options above will print the requested information and then exit.
This is a convenience option which is identical to directly
passing:
"-Xclang -plugin-arg-clazy -Xclang qt4-compat"
This is a convenience option which is identical to directly
passing:
"-Xclang -plugin-arg-clazy -Xclang qt-developer"
All other options are passed directly to clang++ and handled from there.
See the clang manual for a list of the very large set of options available, but in normal operation you "compile" your code with clazy just as you would with clang.
% clazy --list List of available clazy checkers: Checks from level0. Very stable checks, 100% safe, no false-positives: connect-non-signal container-anti-pattern lambda-in-connect mutable-container-key qdatetime-utc qenums qfileinfo-exists ....
% cmake -DCMAKE_CXX_COMPILER=clazy <other_cmake_options> then make as normal
% export CLAZY_CHECKS="level2" % cmake -DCMAKE_CXX_COMPILER=clazy <other_cmake_options> then make as normal
% qmake -spec linux-clang QMAKE_CXX=clazy <other_qmake_options> then make as normal
clazy supports the following list of in-code directives:
Exempt an entire file from all checks. No clazy tests will run on the file.
Exempt the entire file from the specified checks. The clazy checks name1, etc will not be run on this file.
Exclude individual lines from specific checks. The clazy checks tests name1, etc. will not be run on the line where this directive is found.
Don't include the 'clazy-' prefix. For example, to disable the "qstring-allocations" check, you would write:
// clazy:exclude=qstring-allocations
and not
// clazy:exclude=clazy-qstring-allocations
Also note that these directives must be C++ style comments; C style comments are ignored.
CLAZY_CHECKS - a comma-separated list of checkers or check-sets to run. By default, all checkers from the "level0" and "level1" check-sets will run.
Examples:
CLAZY_FIXIT - some checkers are able to automatically re-write your source code whenever it encounters code it can "fix". Enable this "fixit" feature by setting this variable to the name of the checker with a "fixit" capability.
Examples:
More documentation is provided when running clazy with the --explain command line option.
Also note that only 1 fixit checker can be run at a time.
CLAZY_EXTRA_OPTIONS - some checkers can adapt their behavior depending on the value of this environment variable. More documentation is provided when running clazy with the --explain command line option.
CLAZY_NO_WERROR - if this is variable is set, clazy will not treat warnings as errors, even if the -Werror compiler option is specified. This is useful if you want to use -Werror only for the regular gcc/clang warnings but not for clazy warnings.
Copyright (C) 2015-2017 Klaralvdalens Datakonsult AB, a KDAB Group company, <info@kdab.com>
This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with this library. If not, see <http://www.gnu.org/licenses/>.
clang(1) https://www.kdab.com/use-static-analysis-improve-performance
Sergio Martins <sergio.martins@kdab.com> Laurent Montel <laurent.montel@kdab.com> Allen Winter <allen.winter@kdab.com> Albert Astals Cid <aacid@kde.org> Aurelien Gateau <agateau@kde.org> Kevin Funk <kevin.funk@kdab.com> Hannah von Reth <hannah.vonreth@kdab.com> Volker Krause <volker.krause@kdab.com> Christian Ehrlicher <Ch.Ehrlicher@gmx.de> Mathias Hasselmann <mathias.hasselmann@kdab.com>
2019-02-06 | 1.5.0 |