Run clang-tidy on headers (#3572)

This patches bazel_clang_tidy handling of headers. I found an equivalent
change at https://github.com/erenon/bazel_clang_tidy/pull/13, but that
was [already
rejected](https://github.com/erenon/bazel_clang_tidy/pull/13#issuecomment-1047007424).
Per the criticism, this will result in redundant processing of headers.

The project instead uses `HeaderFilterRegex: ".*"`, but that results in
two problems:

1. When running with `-k`, errors are repeated when a header is included
more than once, which is common.
2. clang-tidy including errors from headers that are included from other
modules (e.g., abseil-cpp); filtering correctly is difficult.

Given the trade-offs and options (including forking), I thought patching
was preferable so long as it remains narrow.
This commit is contained in:
Jon Ross-Perkins
2024-01-05 23:01:47 +00:00
committed by GitHub
parent 927d633762
commit a196b9840f
15 changed files with 104 additions and 31 deletions
+2 -1
View File
@@ -17,6 +17,7 @@ static auto InitLLVMTargets() -> void {
// On program startup, set `InitLLVM::InitializeTargets` to be our
// initialization function so that `InitLLVM` can call it at the right moment.
char InitLLVM::RegisterTargets = (InitializeTargets = &InitLLVMTargets, 0);
const char InitLLVM::RegisterTargets =
(InitializeTargets = &InitLLVMTargets, 0);
} // namespace Carbon