This is an automated email from the ASF dual-hosted git repository.
joemcdonnell pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/impala.git
The following commit(s) were added to refs/heads/master by this push:
new befa93ffa IMPALA-12730: Don't use -Weverything for clang-tidy
befa93ffa is described below
commit befa93ffa6b0fa50c614b6e24faf25443ec50d90
Author: Joe McDonnell <[email protected]>
AuthorDate: Mon Mar 4 13:31:04 2024 -0800
IMPALA-12730: Don't use -Weverything for clang-tidy
For current clang-tidy builds, we enable -Weverything and then
explicitly disable a couple verbose warnings. Clang-tidy uses
these warnings to produce its clang-diagnostic-* issues.
This gives clang-tidy the maximum flexibility to enforce any
warning the Clang can produce, but in practice, we disable
them via the .clang-tidy file's Checks: section.
The output from a -Weverything build is enormous and hard to
navigate. When there is a compilation issue, digging through
the logs is arduous. Clang discourages the use of -Weverything,
as it contains many noisy warnings.
This changes the clang-tidy build to use -Wextra instead and
shrinks the list of disabled clang-diagnostic-* issues
accordingly.
Testing:
- Verified that bin/run_clang_tidy.sh passes
Change-Id: Ib4f4cc9a6d040b90495496b2396a26f3c5189231
Reviewed-on: http://gerrit.cloudera.org:8080/21112
Reviewed-by: Michael Smith <[email protected]>
Tested-by: Impala Public Jenkins <[email protected]>
---
.clang-tidy | 41 +----------------------------------------
be/CMakeLists.txt | 16 ++++++++--------
2 files changed, 9 insertions(+), 48 deletions(-)
diff --git a/.clang-tidy b/.clang-tidy
index c4499f953..ea308e3b0 100644
--- a/.clang-tidy
+++ b/.clang-tidy
@@ -30,49 +30,10 @@ Checks: "-*,clang*,\
-clang-analyzer-optin.performance.Padding,\
-clang-analyzer-unix.Malloc,\
-clang-analyzer-unix.MallocSizeof,\
--clang-diagnostic-c++1z-extensions,\
--clang-diagnostic-c++98*,\
--clang-diagnostic-cast-align,\
--clang-diagnostic-class-varargs,\
--clang-diagnostic-conversion,\
--clang-diagnostic-covered-switch-default,\
--clang-diagnostic-deprecated,\
--clang-diagnostic-disabled-macro-expansion,\
--clang-diagnostic-documentation-html,\
--clang-diagnostic-documentation-unknown-command,\
--clang-diagnostic-double-promotion,\
--clang-diagnostic-exit-time-destructors,\
--clang-diagnostic-float-conversion,\
--clang-diagnostic-float-equal,\
--clang-diagnostic-global-constructors,\
--clang-diagnostic-gnu-anonymous-struct,\
--clang-diagnostic-gnu-zero-variadic-macro-arguments,\
--clang-diagnostic-header-hygiene,\
--clang-diagnostic-missing-prototypes,\
--clang-diagnostic-missing-variable-declarations,\
--clang-diagnostic-nested-anon-types,\
--clang-diagnostic-old-style-cast,\
--clang-diagnostic-overlength-strings,\
--clang-diagnostic-packed,\
--clang-diagnostic-padded,\
--clang-diagnostic-return-type-c-linkage,\
--clang-diagnostic-shadow,\
--clang-diagnostic-shadow-field-in-constructor,\
--clang-diagnostic-shorten-64-to-32,\
-clang-diagnostic-sign-compare,\
--clang-diagnostic-sign-conversion,\
--clang-diagnostic-switch-enum,\
--clang-diagnostic-undefined-func-template,\
--clang-diagnostic-undefined-reinterpret-cast,\
--clang-diagnostic-unreachable-code,\
--clang-diagnostic-unreachable-code-return,\
--clang-diagnostic-unused-command-line-argument,\
+-clang-diagnostic-return-type-c-linkage,\
-clang-diagnostic-unused-local-typedef,\
-clang-diagnostic-unused-parameter,\
--clang-diagnostic-used-but-marked-unused,\
--clang-diagnostic-vla-extension,\
--clang-diagnostic-weak-template-vtables,\
--clang-diagnostic-weak-vtables,\
performance-*,\
-performance-unnecessary-value-param"
diff --git a/be/CMakeLists.txt b/be/CMakeLists.txt
index 4532eb9e9..9accfa8b1 100644
--- a/be/CMakeLists.txt
+++ b/be/CMakeLists.txt
@@ -178,14 +178,14 @@ SET(CXX_FLAGS_TIDY "${CXX_FLAGS_TIDY} -O1")
# Ignore assert() and DCHECK() to avoid dead code errors on "DCHECK(false);
return
# nullptr" in impossible default switch/case statements.
SET(CXX_FLAGS_TIDY "${CXX_FLAGS_TIDY} -DNDEBUG")
-# Turn all warnings back on. Some will be ignored via .clang-tidy's "Checks"
value, but
-# this allows different "Checks" settings to be used in different clang-tidy
runs without
-# recompiling. There are two exceptions: C++98 compatibility and padding are
not interesting
-# and excluding them dramatically reduces the output.
-SET(CXX_FLAGS_TIDY "${CXX_FLAGS_TIDY} -Wall -W -Weverything -Wno-c++98-compat
-Wno-padded")
-# The Tidy build is so verbose (becasue of -Weverything) that it is unlikely
to be viewed
-# in a terminal and most likely will be redirecto to less, a log file, or
/dev/null. In
-# those places color codes just make the output harder to read.
+# Clang-tidy's clang-diagnostic issues are sourced from Clang warnings, so
there can
+# only be clang-diagnostic issues for warnings that are enabled. Warnings
change across
+# Clang releases and most are disabled via the .clang-tidy's "Checks" value.
To avoid
+# enormous output, this only enables -Wall and -Wextra.
+SET(CXX_FLAGS_TIDY "${CXX_FLAGS_TIDY} -Wall -Wextra")
+# The Tidy build output can be verbose and it is unlikely to be viewed in a
terminal.
+# It usually is redirected to less, a log file, or /dev/null. In those places
color
+# codes just make the output harder to read.
SET(CXX_FLAGS_TIDY "${CXX_FLAGS_TIDY} -fno-color-diagnostics")
# Set compile flags based on the build type.