AArch64 | |
ppc64le | |
s390x | |
x86-64 |
- Use a stricter llvm requirement. Only relying on the llvm soversion is still not enough. (kde#432078)
- Update to 1.9: * Fixed clazy slowdown introduced in 1.8. It can be up to 4x faster now.
- Update to 1.8: * New Checks: - qt6-qhash-signature - qt6-header-fixes - qt6-deprecated-api-fixes - use-chrono-in-qtimer - fixit for missing-qobject-macro - Drop patches merged upstream: * 0001-updated-for-compatibility-with-LLVM-10.patch * 0001-updated-for-compatibility-with-LLVM-10-clazy-standal.patch
- Make sure the clang executables matching the libraries we link to are installed (mitigates boo#1178637).
- Add patches to address build issues with LLVM11: * 0001-updated-for-compatibility-with-LLVM-10.patch * 0001-updated-for-compatibility-with-LLVM-10-clazy-standal.patch
- Update to 1.7: * New Checks: - overloaded signal - invalid JNI signatures - qstring-comparison-to-implicit-char - qt6-qlatin1string-to-u * connect-non-signal: Fix case where it didn't find the pmf * qstring-arg warns when using QLatin1String::arg(int), as it casts to QChar * Building clazy itself is 30% faster * heap-allocated-small-trivial-type: less false-positives - Drop patches merged upstream: * cmake-clang-cpp.patch * 0001-Fix-build-issues-using-llvm-10.0.0.patch * 0001-qstring-allocations-Fix-unit-tests-with-llvm-10.patch
- Update to version 1.11git.20240311T110110~ebf99de: * Fix false positives when using a typedef in combination with a generic * Add fitit for qstring-arg check * [cmake] Increase mimimum required CMake version to 3.8
- Add a _constraints file for PowerPC. It needs more memory for Leap builds
- Update to version 1.11git.20240225T163906~f353355: * Fix build with older CMake versions * connect-non-signal: Fix not finding method from PMF connect when signal is declared in variable * Remove Qt4 compatibility mode and last remaining check * qstring-incasesensitive-allocation: Make initializer list usage slightly more consistent * qstring-incasesensitive-allocation: Remove unneeded FWD in C++ file * Clean up some further unneeded includes * qstring-ref: Simplify initializer usage * Do not include SourceCompatibilityHelpers in checkbase.h file * qrequiredresults-candidated: Move helper method to single file * Remove clazy::DiagnosticFix compat helper * Remove some no longer needed version checks * Remove clazy::getLocStart and clazy::getLocEnd helpers * Remove clazy::isFinal compat helper * Remove compat ifdef in clazy::hasUnusedResultAttr * Remove clazy::getImmediateExpansionRange compat code * Make std::regex and std::filesyste support mandatory * Bump clang/llvm requirements to 11.0 * qgetenv: Add note in case qEnvironmentVariableIntValue fixit allows for base autodetection * qgetenv: Do not include base parameter when it is a nullptr * qgetenv: Limit scope to variables to if-statement if possible * qgetenv: Fix wrong fixit being provided for qEnvironmentVariableIntValue, ignore wontfix case * Avoid unneeded std::string -> char* conversion and back * adapt usage of CXXMethodDecl::isPure for LLVM>=18 * Add SPDX info for fully-qualified-moc-types tests * fully-qualified-moc-types: Fix fixit for pointer/reference type return values * fully-qualified-moc-types: Remove fixit snippet from message, add fixit test * fully-qualified-moc-types: Provide fixit for slot/invokable return types and improve warning range * fully-qualified-moc-types: Provide fixit for slot arguments and improve source range for warning * fully-qualified-moc-types: Deduplicate logic for creating template string * fully-qualified-moc-types: Fix templates not being resolved recursively * fully-qualified-moc-types: Show issues of current implementation in testcase * Add fixit for QFileInfo::exists * Fix false positive in qdatetime-utc * Fix unused variable warning in range-loop-detach * Remove warning and promise of a rewrite, that ship has sailed * qstring-allocations: turn s == "" into s.isEmpty() * empty-qstringliteral: Be more precise about non-null string creation, mention QString() possibility * empty-qstringliteral: Make check work with Qt6 and ignore files from QML plugins * wrong-qglobalstatic: Make check work properly with Qt6 * Make clazy tests run with Qt5 and Qt6, run as part of ctest * run_tests.py: Do not add qmake header paths twice * no-module-include: Fix test compilation with Qt6, ignore internal include of QtQmlIntegrationDepends file * Remove compat code for specifying only one major version for test * reserve-candidate: Fix operator call expressions being counted as compex expressons in Qt6 * connect-3arg-lambda: Fix message for QMenu and adapt check/test for Qt6 * connect-non-signal: Fix compilation with Qt6 and enable tests * qt6-qhash-signature: Enable tests or Qt6 * old-style-connect: Make tests work with Qt6 * run_tests: Use Qt6 libraries for linking and adapt to state machine being own lib in Qt6 * old-style-connect: Adapt to QMenu::addAction being an alias to QWidget::addAction * Add clazy-standalone test to generated ClazyTests and fix running it * thread-with-slots: Enable test for Qt6 * use-chrono-in-qtimer: Remove unneeded explicit setting of Qt major versions * qdatetime-utc: Fix porting in fixit from QDateTime::toTime_t to undeprecated method * qdatetime-utc: Rework docs to include more examples, some practical benchmark-results and reference the fixits * qdatetime-utc: Extend check to also cover toSecsSinceEpoc * qdatetime-utc: Warn when QDateTime::currentDateTimeUtc().toMSecsSinceEpoch() is used * qdatetime-utc: Use QDateTime::currentMSecsSinceEpoch which is again significantly faster * qdatetime-utc: Add explanitory note to warning explaining why one should use replacement * qdatetime-utc: Also take QDateTime::toMSecsSinceEpoch into consideration and make test pass with Qt6 * use-static-qregularexpression: Make check and tests work properly with Qt6 * unused-result: Silence false positive in Qt headers * function-args-by-ref: Prefer emitting warning for non-trivial copying rather than size * Mark docs with CC-BY-SA-4.0 license * qcolor-from-literal: Update documentation to includes more prescise checks and fixits * qcolor-from-literal: Slightly adjust messages for invalid patterns * range-loop-detach: Update docuentation with C+17 specific fixit * detaching-temporary: Adjust tests for changed Qt6 semantics * QtUtils: Avoid transient includes, de-inline some not critical functions, move code when used only once * Clean up a bunch of unused includes * qstring-allocations: Fix checks/fixits not working with Qt6 * Fix parsing Q_PROPERTY declarations with spaces * connect-not-normalized: Clean up comments about code apparently not having worked 6 years ago * const-signal-or-slot: Enable test for Qt6 * fully-qualified-moc-types: Remove explicit major version value * qstring-arg: Enable relevant tests for Qt6, avoid ambiguity * container-anti-pattern: Emit warning for QVector::toList even with Qt6 alias * lambda-unique-connection: Fix duplicate object key in config * qdeleteall: Fix test for Qt6 and make even Qt5 messages more proper * qdeleteall: Fix false positive/Qt6 compile error * connect-not-normalized: Fix Q_ARG/Q_RETURN_ARG checks in Qt6 * Fix dumping of AST due to mismatching arguments * detaching-member: Make test work with Qt6 * qcolor-from-literal: Report invalid patterns as warning * range-loop-detach: Fix QList check and proper output for Qt6 * range-loop-detach: Improve presentation of fixit in compiler output * range-loop-detach: Use std::as_const for C++17 * Utilize better clang-format results with trailing comma in more places * fully-qualified-moc-types: Create string manually instead of using overcomplicated clang APIs * fully-qualified-moc-types: Clarify comments * fully-qualified-moc-types: Fix issues with typedefs as generic parameters * fully-qualified-moc-types: Fix issues with LLVM17 * fully-qualified-moc-types: Fix Qt5 issues with varadic template args * fully-qualified-moc-types: Fix warnings in case typedefs are used * Try to improve checks for generics * QtUtils: Make trivial nullptr checks more concise * fully-qualified-moc-types: Do not warn for QStringList in Qt6 * fully-qualified-mock-types: Make test run with Qt6 * fully-qualified-moc-types: Ignore QDBusPendingReply statements * Don't report iterator conversion for mutating container member functions * run_tests.py: Add missing flags also for clazy-standalone * run_tests.py: Clean up concatenation of test command args * Only add Qt module includes when needed * Do not add no-module-include specific flag to all tests * Add qcolor-from-literal check for Qt6 QColor::fromString method * strict-iterators: Also check QJsonObject iterators * QtUtils: Document java style iterators list * detaching-temporary: Add config for QJsonObject * Enable Qt6 by default, except for currently failing tests * qt6-header-fixes can only build with Qt5 * Fix lambda-unique-connection for Qt6 * Don't run clang-apply-replacements if the test was completely skipped * Add support for running tests with Qt5 and/or Qt6 * Adjust indentation of license textx in generate.py * Mark some trivial files with CC0-1.0 license * Remove old COPYING-LGPL2.txt file * Replace Author tags with SPDX-FileContributor * Add license info to recently touched files of mine * Fix broken license info for BSD-2 licenses * Re-run licensedigger with prettyheader option * Remove unneeded statements about files being part of clazy * Require tests to pass on all platforms * Fix strict-iterators with llvm17 * Fix LLVM bug tracker URL * Make lamba-unique-connection's tests closer to reality * Fix returning-data-from-temporary (with clang 17) * Disable c++17 for qt6-qlatin1stringchar-to-u for now. * Run all tests with C++14 and with C++17 * qt6-qlatin1stringchar-to-u: cleanups * Remove .uncrustify file * No longer recommend editing Checks.h file directly * Rename generated files and add note * Add qcolor-from-literal fixit to checks.json * dev-scripts/generate.py: Format file after generating it * Move setup of CXX standard cmake variables before try_compile statements * Speed up subsequent cmake runs * Optimize checks for filesystem in tests * Minor: avoid printing empty lines for nothing * Fix use-static-qregularexpression with C++17 * Adapt qstring-allocations to C++17's eliding of constructor calls * Adapt the user-literal-for-QLatin1String case to C++17 * Adapt container-anti-pattern to C++17 (Q_FOREACH is very different then) * Adapt detaching-member to the C++17 AST * Switch to C++17 in preparation for Qt6 support * run_tests.py: Do not report clang/clazy-standalone command twice * run_tests.py: Clean up some unused expressions * Silence all cppcheck warnings for tests * use-static-qregularexpression: Fix issues when running against llvm 17 * fully-qualified-mock-types: Resolve fully qualified name based on underlying record * heap-allocated-small-trivial-type: Provide LangOptions context for string conversion * function-args-by-value: Specify LangOptions and adjust values * qt6-deprecated-api-fixes: Adjust param checks for QDate replacements * qt6-deprecated-api-fixes: Adjust helper to check function args directly * qt6-deprecated-api-fixes: Create helper for checking QString param type * qt6-deprecated-api-fixes: Simplify replacementForQSignalMapper and use consistent getAsString params * qt6-deprecated-api-fixes: Provide LangOptions for more calls * detaching-member: Compare record declaration names instead of pretty-printed version * qt6-deprecated-api-fixes: Provide LangOptions and slim down string comparisons * qstring-comparison-to-implicit-char: Provide explicit LangOptions for string conversion * Avoid doing string checks for class in Qt6QLatin1StringCharToU * Make sure function-args-by-ref works the same as in later llvm version * Add -fno-diagnostics-show-line-numbers flag for clang >= 17 * Remove linux-qt6 for now since we don't run tests there * Remove reserve-candidates test that has been failing and is obsolete * run_tests: Fix missing space resulting in weird compile/linking errors * Use ClazyPlugin and clazy-standalone from builddir in ctest * Update test genertion to use utility-cmake macro * Add CLAZYPLUGIN_CXX env variable to tests * strict-iterators: Remove unused compat header * unused-non-trivial-variable: Also warn for unused QJsonValue * unused-non-trivial-variable: Silence warning for unused QScopeGuard * readme, add missing doc for no-module-include check * readme, remove pre-built binaries link as kdab does not provide them anymore * Fix (gcc) warning about code doing if (uint < 0) * Download SPDX licenses * Add dep5 file containing license info for tests * Improve qcolor-from-literal warning for QRgba64 value, extend test * Update tests and improve fixit * Add fixit for QColor * use-static-qregularexpression: Also add testcase for QString::mid * Fix false positive for static regex in case QString::arg is used in variable * Fix false positives for static-qregularxpression check * Convert license headers to SPDX identifiers * use-chrono-in-qtimer: fix author info in license header * function-args-by-value: Add trailing commas * RuleOfBase: Use better formatting with trailing comma * unused-non-trivial-variable: Improve formatting * Revert "Fix clazy-fully-qualified-moc-types check for ActionReply" * Revert "Added a comment explaining the KAuth special case" * Improve qenums documentation * no-module-include.cpp: Fix warning about assigning m_modulesList in constructor body, make it const * no-module-include: Add a test for qdbusxml2cpp generated files * Add NetworkAuth module include check * Avoid warnings for QtDBus include in autogenerated files * TemporaryIterator: Fix compile error with gcc * NoModuleInclude: Properly format list * Reduce false-positives in `isempty-vs-count` check - Fix build on factory
- Update to version 1.11git.20230920T205027~2965bc3: * add missing PrintSupport module for no-module-include check (kde#474657) * Allow `clazy --list` to print the new no-module-include check * Add new no-module-include check in checks.json (kde#474706) * add new no-module-include check * Add sanitize-inline-keyword check * clazy-standalone: improve --ignore-included-files help message * Fix compilation with LLVM 17.0.0 (rc2) - Drop patch, now upstream: * 0001-Limit-the-clang-AST-crash-workaround-to-clang-7.0.patch * 0001-Fix-crash-when-Q_PROPERTY-contents-is-empty.patch * 0001-Allow-passing-no-check-in-plugin-arg-clazy-commandli.patch * 0001-Build-fixes-for-LLVM-Clang-15.0.0.patch * 0001-Adapt-to-API-changes-in-clang-llvm-16.patch
- Add upstream change to fix build with clang 16: * 0001-Adapt-to-API-changes-in-clang-llvm-16.patch
- Add upstream changes: * 0001-Limit-the-clang-AST-crash-workaround-to-clang-7.0.patch * 0001-Fix-crash-when-Q_PROPERTY-contents-is-empty.patch * 0001-Allow-passing-no-check-in-plugin-arg-clazy-commandli.patch * 0001-Build-fixes-for-LLVM-Clang-15.0.0.patch
- Add upstream patch: * 0001-qstring-allocations-Fix-unit-tests-with-llvm-10.patch
- Add upstream patch: * 0001-Fix-build-issues-using-llvm-10.0.0.patch
- %make_jobs is depricated replaced by %cmake_build - Use %autosetup to simplify maintenance
- Update to 1.6: * New Checks: - heap-allocated-small-trivial-type - signal-with-return-value - qproperty-type-mismatch, contributed by Jean-Michaƫl Celerier * Removed level3. Moved all level3 checks to manual level. * Fixed regressions with LLVM 9.0 * Minimum LLVM was bumped to 5.0 * Fixit infrastructure was overhauled * Clazy no longer rewrites files directly, to avoid races when parallel invocations change the same header. * Clazy now exports a yaml file with the replacements, to be applied with clang-apply-replacements. * The way to enable code rewrite is now: -Xclang -plugin-arg-clazy - Xclang export-fixes for clang or -export-fixes=somefile.yaml for clazy-standalone * All other fixit arguments and fixit env variables were removed - Update cmake-clang-cpp.patch to make clazy build with both clang 8 and 9.
- Add cmake-clang-cpp.patch: fix build with LLVM 9. - Replace outdated llvm-clang-devel dependency by clang-devel.
- Disable lto. - Remove workarounds for older openSUSE versions.
- Update to 1.5 * New Checks: ifndef-define-typo lowercase-qml-type-name qrequiredresult-candidates * New Fixits: range-loop now supports adding missing refs or const-ref range-loop now supports adding qAsConst() function-args-by-ref now adding missing refs or const-ref (experimental) Introduced CLAZY_FIXIT_SUFFIX env variable * Removed support for the obscure -DCLAZY_BUILD_UTILS_LIB to simplify the CMakeLists.txt * Renamed the clazy plugin from ClangLazy.so to ClazyPlugin.so * fully-qualified-moc-types now warns for slot/invokable return values too. They need to be fully qualified for QML. * Fixed a crash (clang assert) in raw-environment-function - BuildRequire ncurses-devel instead of pkgconfig(ncurses) on Leap 42.3 to fix build
- Update to 1.4 * New Checks: connect-by-name skipped-base-class qstring-varargs fully-qualified-moc-types qt-keywords, with fixit included qhash-with-char-pointer-key wrong-qevent-cast static-pmf raw-environment-function empty-qstringliteral * auto-unexpected-qstringbuilder now also warns for lambdas returning QStringBuilder * performance optimizations * Added -header-filter=<regex> option to clazy-standalone. Only headers matching the regexp will have warnings, besides the .cpp file from the translation unit, which is never filtered out. * Added -ignore-dirs=<regex> option to clazy-standalone, and its CLAZY_IGNORE_DIRS env variable equivalent. * Added CLAZY_HEADER_FILTER env variable which adds above functionality to both clazy and clazy-standalone * unused-non-trivial-variable got unused-non-trivial-variable-no-whitelist option * unused-non-trivial-variable got user-blacklist and user-whitelist support * container-inside-loop is now a manual check instead of level2 * HiddenLevel was renamed to ManualLevel * connect-3arg-lambda now warns when passing a lambda to QTimer::singleShot() or QMenu::addAction() without a context object * old-style-connect warns for QMenu::addAction() and QMessageBox::open() too now
- Small packaging adjustements
- Add Clazy 1.3, a code checker based on the Clang framework.
- Update to 1.11 * New Checks: - use-arrow-operator-instead-of-data - use-static-qregularexpression - unexpected-flag-enumerator-value - Removed inefficient-qlist check (Fixed in Qt6)
- Update to 1.10 * Requires C++17 * Fixed a -Wclazy-lambda-in-connect false-positive * Fixed crash in copyable-polymorphic when PCH was enabled - Drop 0001-Fix-build-with-Clang-12.patch. Fixed upstream.
- Make sure C++17 support is available for Leap builds.
- Add upstream change: * 0001-Fix-build-with-Clang-12.patch