Enable additional clang-tidy checks

These checks are all fast, worthwhile, and currently pass.

Also update comment in static_analysis_toolchain.gni.

Runtime impact: On my workstation I ran,

    for i in 1 2 3;
    do gn clean out; gn gen out; time ninja -C out static_analysis;
    done

with and without this change.  The mean CPU time (user+sys) increased by
about 25%, from 559 s to 707 s.  I think this is acceptable.

No-Docs-Update-Reason: We do not currently discuss in the documentation which clang-tidy checks are run for upstream pigweed itself.
Change-Id: If28652ecbd3ca6c876e6942d08d24a30717e8294
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/66440
Commit-Queue: Ted Pudlik <tpudlik@google.com>
Reviewed-by: Rob Mohr <mohrr@google.com>
Reviewed-by: Armando Montanez <amontanez@google.com>
3 files changed
tree: 3438b4f55b692264022a6e8fa364e7ec245193ea
  1. build_overrides/
  2. docker/
  3. docs/
  4. pw_allocator/
  5. pw_analog/
  6. pw_android_toolchain/
  7. pw_arduino_build/
  8. pw_assert/
  9. pw_assert_basic/
  10. pw_assert_log/
  11. pw_base64/
  12. pw_bloat/
  13. pw_blob_store/
  14. pw_bluetooth_hci/
  15. pw_boot/
  16. pw_boot_cortex_m/
  17. pw_build/
  18. pw_build_info/
  19. pw_build_mcuxpresso/
  20. pw_bytes/
  21. pw_checksum/
  22. pw_chrono/
  23. pw_chrono_embos/
  24. pw_chrono_freertos/
  25. pw_chrono_stl/
  26. pw_chrono_threadx/
  27. pw_cli/
  28. pw_console/
  29. pw_containers/
  30. pw_cpu_exception/
  31. pw_cpu_exception_cortex_m/
  32. pw_crypto/
  33. pw_docgen/
  34. pw_doctor/
  35. pw_env_setup/
  36. pw_file/
  37. pw_function/
  38. pw_fuzzer/
  39. pw_hdlc/
  40. pw_hex_dump/
  41. pw_i2c/
  42. pw_interrupt/
  43. pw_interrupt_cortex_m/
  44. pw_kvs/
  45. pw_libc/
  46. pw_log/
  47. pw_log_basic/
  48. pw_log_null/
  49. pw_log_rpc/
  50. pw_log_tokenized/
  51. pw_malloc/
  52. pw_malloc_freelist/
  53. pw_metric/
  54. pw_minimal_cpp_stdlib/
  55. pw_module/
  56. pw_multisink/
  57. pw_package/
  58. pw_persistent_ram/
  59. pw_polyfill/
  60. pw_preprocessor/
  61. pw_presubmit/
  62. pw_protobuf/
  63. pw_protobuf_compiler/
  64. pw_random/
  65. pw_result/
  66. pw_ring_buffer/
  67. pw_router/
  68. pw_rpc/
  69. pw_snapshot/
  70. pw_software_update/
  71. pw_span/
  72. pw_status/
  73. pw_stm32cube_build/
  74. pw_stream/
  75. pw_string/
  76. pw_symbolizer/
  77. pw_sync/
  78. pw_sync_baremetal/
  79. pw_sync_embos/
  80. pw_sync_freertos/
  81. pw_sync_stl/
  82. pw_sync_threadx/
  83. pw_sys_io/
  84. pw_sys_io_arduino/
  85. pw_sys_io_baremetal_lm3s6965evb/
  86. pw_sys_io_baremetal_stm32f429/
  87. pw_sys_io_stdio/
  88. pw_target_runner/
  89. pw_thread/
  90. pw_thread_embos/
  91. pw_thread_freertos/
  92. pw_thread_stl/
  93. pw_thread_threadx/
  94. pw_tls_client/
  95. pw_tls_client_boringssl/
  96. pw_tls_client_mbedtls/
  97. pw_tokenizer/
  98. pw_tool/
  99. pw_toolchain/
  100. pw_trace/
  101. pw_trace_tokenized/
  102. pw_transfer/
  103. pw_unit_test/
  104. pw_varint/
  105. pw_watch/
  106. pw_web_ui/
  107. pw_work_queue/
  108. targets/
  109. third_party/
  110. .bazelignore
  111. .bazelrc
  112. .clang-format
  113. .clang-tidy
  114. .eslintrc.json
  115. .gitattributes
  116. .gitignore
  117. .gn
  118. .prettierrc.js
  119. .pylintrc
  120. activate.bat
  121. AUTHORS
  122. bootstrap.bat
  123. bootstrap.sh
  124. BUILD.bazel
  125. BUILD.gn
  126. BUILDCONFIG.gn
  127. CMakeLists.txt
  128. LICENSE
  129. modules.gni
  130. OWNERS
  131. package.json
  132. PW_PLUGINS
  133. README.md
  134. tsconfig.json
  135. WORKSPACE
  136. yarn.lock
README.md

Pigweed

Pigweed is an open source collection of embedded-targeted libraries–or as we like to call them, modules. These modules are building blocks and infrastructure that enable faster and more reliable development on small-footprint MMU-less 32-bit microcontrollers like the STMicroelectronics STM32L452 or the Nordic nRF52832.

For more information please see our website: https://pigweed.dev/

Links