mirror of
https://github.com/nlohmann/json.git
synced 2026-10-05 22:20:30 +00:00
ubuntu.yml pinned the clang-tidy/clang-tidy-sanitizer/single-binaries job to silkeh/clang:dev, a tag last pushed 2026-02-18 that reports "clang version 22.0.0 (...+20251015...)", a pre-release snapshot from before the LLVM 22 release; the maintainer now updates dev-unstable, 22, and latest instead. Switched to silkeh/clang:22, matching the other clang jobs on :latest. Verified with clang-tidy 22.1.8 (the image's actual version) against this repository's .clang-tidy and library headers what the release image newly reports compared to :dev: - readability-redundant-typename fires at ~250 sites across the _cpp20-relevant conversion/to_chars headers; the library targets C++11 and keeps the typenames, so the check is disabled in .clang-tidy, matching how the file already handles checks that don't fit a C++11 codebase. - misc-anonymous-namespace-in-header fires on the two anonymous namespaces in from_json.hpp and to_json.hpp; added the alias to their existing NOLINT (cert-dcl59-cpp, fuchsia-header-anon-namespaces, google-build-namespaces). - bugprone-std-namespace-modification fires on every addition to namespace std: the std::hash, std::formatter and std::swap overloads in json.hpp, and the std::tuple_size/std::tuple_element specializations in iteration_proxy.hpp (this last file is not named in #5725's item 5, found by actually running clang-tidy 22.1.8 against the current tree). All six are legal, deliberate additions to namespace std (explicit/partial specializations of std types, or the pre-C++20 std::swap overload); annotated each with the check name next to its existing cert-dcl58-cpp NOLINT. - modernize-avoid-c-style-cast reported nothing new. Also added clang++-22/21, clang-tidy-22/21, g++-16 and gcov-16 to the find_program search lists in ci.cmake so a local "maximal warnings" configure prefers the current toolchain version over an older one on PATH. #5725 item 5 Signed-off-by: Niels Lohmann <mail@nlohmann.me>
91 lines
3.6 KiB
YAML
91 lines
3.6 KiB
YAML
# bugprone-use-after-move (hicpp-invalid-access-moved is its alias) still flags
|
|
# the basic_json move constructor, which forwards the whole object to its base
|
|
# class (#5724), and two forwards in the error-message construction of
|
|
# at(KeyType&&) (json.hpp, both overloads: find(std::forward<KeyType>(key))
|
|
# followed by string_t(std::forward<KeyType>(key)) in the throw), which #5689
|
|
# rewrites. Re-enable both checks once those changes have landed.
|
|
# portability-avoid-pragma-once: kept disabled on purpose. #pragma once is accepted
|
|
# by every supported compiler, and tools/amalgamate/amalgamate.py strips it from
|
|
# single_include, so there is nothing left to fix here.
|
|
|
|
Checks: '*,
|
|
|
|
-bugprone-use-after-move,
|
|
-hicpp-invalid-access-moved,
|
|
|
|
-altera-id-dependent-backward-branch,
|
|
-altera-struct-pack-align,
|
|
-altera-unroll-loops,
|
|
-android-cloexec-fopen,
|
|
-boost-use-ranges,
|
|
-bugprone-easily-swappable-parameters,
|
|
-cert-err58-cpp,
|
|
-clang-analyzer-webkit.NoUncountedMemberChecker,
|
|
-concurrency-mt-unsafe,
|
|
-cppcoreguidelines-avoid-const-or-ref-data-members,
|
|
-cppcoreguidelines-avoid-do-while,
|
|
-cppcoreguidelines-avoid-goto,
|
|
-cppcoreguidelines-avoid-magic-numbers,
|
|
-cppcoreguidelines-avoid-non-const-global-variables,
|
|
-cppcoreguidelines-macro-usage,
|
|
-cppcoreguidelines-pro-bounds-avoid-unchecked-container-access,
|
|
-cppcoreguidelines-pro-bounds-array-to-pointer-decay,
|
|
-cppcoreguidelines-pro-bounds-constant-array-index,
|
|
-cppcoreguidelines-pro-bounds-pointer-arithmetic,
|
|
-cppcoreguidelines-pro-type-reinterpret-cast,
|
|
-cppcoreguidelines-pro-type-union-access,
|
|
-cppcoreguidelines-rvalue-reference-param-not-moved,
|
|
-cppcoreguidelines-virtual-class-destructor,
|
|
-fuchsia-default-arguments-calls,
|
|
-fuchsia-default-arguments-declarations,
|
|
-fuchsia-overloaded-operator,
|
|
-google-explicit-constructor,
|
|
-google-readability-function-size,
|
|
-google-runtime-float,
|
|
-google-runtime-int,
|
|
-hicpp-avoid-goto,
|
|
-hicpp-explicit-conversions,
|
|
-hicpp-function-size,
|
|
-hicpp-no-array-decay,
|
|
-hicpp-no-assembler,
|
|
-hicpp-signed-bitwise,
|
|
-hicpp-uppercase-literal-suffix,
|
|
-llvm-header-guard,
|
|
-llvm-include-order,
|
|
-llvm-prefer-static-over-anonymous-namespace,
|
|
-llvm-use-ranges,
|
|
-llvmlibc-*,
|
|
-misc-use-anonymous-namespace,
|
|
-misc-confusable-identifiers,
|
|
-misc-include-cleaner,
|
|
-misc-no-recursion,
|
|
-misc-non-private-member-variables-in-classes,
|
|
-modernize-concat-nested-namespaces,
|
|
-modernize-type-traits,
|
|
-modernize-use-constraints,
|
|
-modernize-use-designated-initializers,
|
|
-modernize-use-nodiscard,
|
|
-modernize-use-ranges,
|
|
-modernize-use-std-numbers,
|
|
-modernize-use-trailing-return-type,
|
|
-performance-enum-size,
|
|
-portability-avoid-pragma-once,
|
|
-readability-function-cognitive-complexity,
|
|
-readability-function-size,
|
|
-readability-identifier-length,
|
|
-readability-magic-numbers,
|
|
-readability-redundant-access-specifiers,
|
|
-readability-redundant-parentheses,
|
|
-readability-redundant-typename,
|
|
-readability-simplify-boolean-expr,
|
|
-readability-uppercase-literal-suffix,
|
|
-readability-use-concise-preprocessor-directives'
|
|
|
|
CheckOptions:
|
|
- key: hicpp-special-member-functions.AllowSoleDefaultDtor
|
|
value: 1
|
|
|
|
WarningsAsErrors: '*'
|
|
|
|
HeaderFilterRegex: '.*hpp$'
|