diff --git a/.clang-tidy b/.clang-tidy index 89b909b3f..e633c8ca1 100644 --- a/.clang-tidy +++ b/.clang-tidy @@ -1,5 +1,5 @@ --- -Checks: '*,-altera-*,-boost-use-ranges,-bugprone-chained-comparison,-bugprone-easily-swappable-parameters,-bugprone-signed-char-misuse,-cert-dcl21-cpp,-cert-err58-cpp,-cert-err60-cpp,-cppcoreguidelines-avoid-c-arrays,-cppcoreguidelines-avoid-non-const-global-variables,-cppcoreguidelines-avoid-magic-numbers,-cppcoreguidelines-macro-usage,-cppcoreguidelines-pro-bounds-pointer-arithmetic,-cppcoreguidelines-pro-bounds-array-to-pointer-decay,-cppcoreguidelines-pro-type-reinterpret-cast,-fuchsia-*,-google-runtime-references,-hicpp-avoid-c-arrays,-hicpp-no-array-decay,-hicpp-vararg,-llvmlibc-*,-misc-no-recursion,-modernize-avoid-c-arrays,-modernize-use-trailing-return-type,-readability-function-cognitive-complexity,-readability-identifier-length,-readability-implicit-bool-conversion,-readability-magic-numbers' +Checks: '*,-altera-*,-boost-use-ranges,-bugprone-chained-comparison,-bugprone-easily-swappable-parameters,-bugprone-signed-char-misuse,-cert-dcl21-cpp,-cert-err58-cpp,-cert-err60-cpp,-cppcoreguidelines-avoid-c-arrays,-cppcoreguidelines-avoid-non-const-global-variables,-cppcoreguidelines-avoid-magic-numbers,-cppcoreguidelines-macro-usage,-cppcoreguidelines-pro-bounds-pointer-arithmetic,-cppcoreguidelines-pro-bounds-array-to-pointer-decay,-cppcoreguidelines-pro-type-reinterpret-cast,-fuchsia-*,-google-runtime-references,-hicpp-avoid-c-arrays,-hicpp-no-array-decay,-hicpp-vararg,-llvmlibc-*,-llvm-prefer-static-over-anonymous-namespace,-llvm-use-ranges,-misc-include-cleaner,-misc-no-recursion,-modernize-avoid-c-arrays,-modernize-use-trailing-return-type,-readability-function-cognitive-complexity,-readability-identifier-length,-readability-implicit-bool-conversion,-readability-magic-numbers,-readability-trailing-comma,-zircon-*' # # Disabled checks: # @@ -66,6 +66,15 @@ Checks: '*,-altera-*,-boost-use-ranges,-bugprone-chained-comparison,-bugprone-ea # llvmlibc-* # Doesn't apply. # +# llvm-prefer-static-over-anonymous-namespace +# Not our style. +# +# llvm-use-ranges +# Not using the llvm library. +# +# misc-include-cleaner +# Doesn't work well enough in practice. +# # misc-no-recursion # Nothing wrong with recursion. # @@ -81,6 +90,12 @@ Checks: '*,-altera-*,-boost-use-ranges,-bugprone-chained-comparison,-bugprone-ea # readability-implicit-bool-conversion # Not necessarily more readable. # +# readability-trailing-comma +# Not our style. +# +# zircon-* +# Does not apply. +# #WarningsAsErrors: '*' HeaderFilterRegex: '\/include\/' ... diff --git a/include/protozero/iterators.hpp b/include/protozero/iterators.hpp index 7a1bc433f..4fb81d59f 100644 --- a/include/protozero/iterators.hpp +++ b/include/protozero/iterators.hpp @@ -436,42 +436,42 @@ namespace std { /// @cond individual overloads do not need to be documented template <> - inline typename protozero::const_varint_iterator::difference_type + inline protozero::const_varint_iterator::difference_type distance>(protozero::const_varint_iterator first, // NOLINT(readability-inconsistent-declaration-parameter-name) protozero::const_varint_iterator last) { return protozero::const_varint_iterator::distance(first, last); } template <> - inline typename protozero::const_varint_iterator::difference_type + inline protozero::const_varint_iterator::difference_type distance>(protozero::const_varint_iterator first, // NOLINT(readability-inconsistent-declaration-parameter-name) protozero::const_varint_iterator last) { return protozero::const_varint_iterator::distance(first, last); } template <> - inline typename protozero::const_varint_iterator::difference_type + inline protozero::const_varint_iterator::difference_type distance>(protozero::const_varint_iterator first, // NOLINT(readability-inconsistent-declaration-parameter-name) protozero::const_varint_iterator last) { return protozero::const_varint_iterator::distance(first, last); } template <> - inline typename protozero::const_varint_iterator::difference_type + inline protozero::const_varint_iterator::difference_type distance>(protozero::const_varint_iterator first, // NOLINT(readability-inconsistent-declaration-parameter-name) protozero::const_varint_iterator last) { return protozero::const_varint_iterator::distance(first, last); } template <> - inline typename protozero::const_svarint_iterator::difference_type + inline protozero::const_svarint_iterator::difference_type distance>(protozero::const_svarint_iterator first, // NOLINT(readability-inconsistent-declaration-parameter-name) protozero::const_svarint_iterator last) { return protozero::const_svarint_iterator::distance(first, last); } template <> - inline typename protozero::const_svarint_iterator::difference_type + inline protozero::const_svarint_iterator::difference_type distance>(protozero::const_svarint_iterator first, // NOLINT(readability-inconsistent-declaration-parameter-name) protozero::const_svarint_iterator last) { return protozero::const_svarint_iterator::distance(first, last); diff --git a/test/t/repeated_packed_double/reader_test_cases.cpp b/test/t/repeated_packed_double/reader_test_cases.cpp index 28a273337..27164edcc 100644 --- a/test/t/repeated_packed_double/reader_test_cases.cpp +++ b/test/t/repeated_packed_double/reader_test_cases.cpp @@ -51,13 +51,13 @@ TEST_CASE("read repeated packed double field") { REQUIRE(it == it_range.end()); it = it_range.begin(); - auto it2 = it + 1; + const auto it2 = it + 1; REQUIRE(it2 > it); REQUIRE(it < it2); REQUIRE(it <= it_range.begin()); REQUIRE(it >= it_range.begin()); REQUIRE(*it2 == Approx(0.0)); - auto it3 = 1 + it; + const auto it3 = 1 + it; REQUIRE(*it3 == Approx(0.0)); auto it4 = it2 - 1; REQUIRE(*it4 == Approx(17.34)); diff --git a/test/t/repeated_packed_float/reader_test_cases.cpp b/test/t/repeated_packed_float/reader_test_cases.cpp index d76bea28e..d8c765cc5 100644 --- a/test/t/repeated_packed_float/reader_test_cases.cpp +++ b/test/t/repeated_packed_float/reader_test_cases.cpp @@ -27,7 +27,7 @@ TEST_CASE("read repeated packed float field") { protozero::pbf_reader item{abuffer.data() + n, abuffer.size() - n}; REQUIRE(item.next()); - auto it_range = item.get_packed_float(); + const auto it_range = item.get_packed_float(); REQUIRE_FALSE(item.next()); REQUIRE(*it_range.begin() == Approx(17.34F)); @@ -39,7 +39,7 @@ TEST_CASE("read repeated packed float field") { protozero::pbf_reader item{abuffer.data() + n, abuffer.size() - n}; REQUIRE(item.next()); - auto it_range = item.get_packed_float(); + const auto it_range = item.get_packed_float(); REQUIRE_FALSE(item.next()); auto it = it_range.begin(); diff --git a/test/unit/test_varint.cpp b/test/unit/test_varint.cpp index f7f36b44c..aed7490bf 100644 --- a/test/unit/test_varint.cpp +++ b/test/unit/test_varint.cpp @@ -371,7 +371,7 @@ TEST_CASE("decode multiple varints in sequence") { template void test_overlong_varint_throws() { - std::string buffer(10, static_cast(0xffU)); + const std::string buffer(10, static_cast(0xffU)); const char* b = buffer.data(); const char* const end = buffer.data() + buffer.size(); REQUIRE_THROWS_AS(Decoder::decode(&b, end), protozero::varint_too_long_exception); diff --git a/tools/pbf-decoder.cpp b/tools/pbf-decoder.cpp index 4580c8df6..37aee8524 100644 --- a/tools/pbf-decoder.cpp +++ b/tools/pbf-decoder.cpp @@ -90,7 +90,7 @@ bool decode_string(std::stringstream& out, const protozero::data_view view) { template void print_number_range(std::stringstream& out, const TRange& range) { bool first = true; - for (auto val : range) { + for (const auto val : range) { if (first) { first = false; } else { diff --git a/tools/pbf-fuzzer.cpp b/tools/pbf-fuzzer.cpp index d6ef6f84e..c2fe86ddf 100644 --- a/tools/pbf-fuzzer.cpp +++ b/tools/pbf-fuzzer.cpp @@ -4,7 +4,7 @@ // See https://github.com/google/benchmark/blob/main/LICENSE template inline __attribute__((always_inline)) void DoNotOptimize(Tp const& value) { - asm volatile("" : : "r,m"(value) : "memory"); + asm volatile("" : : "r,m"(value) : "memory"); // NOLINT(hicpp-no-assembler,portability-no-assembler) } template