Add -Wtautological-compare to -Wall
authorWeverything <rtrieu@google.com>
Tue, 12 Nov 2019 21:46:03 +0000 (13:46 -0800)
committerWeverything <rtrieu@google.com>
Tue, 12 Nov 2019 22:36:57 +0000 (14:36 -0800)
Some warnings in -Wtautological-compare subgroups are DefaultIgnore.
Adding this group to -Wmost, which is part of -Wall, will aid in their
discoverability.

Differential Revision: https://reviews.llvm.org/D69292

clang/include/clang/Basic/DiagnosticGroups.td
clang/test/Misc/warning-wall.c [new file with mode: 0644]
clang/test/Sema/warn-bitwise-compare.c
clang/test/Sema/warn-overlap.c
clang/test/SemaCXX/warn-bitwise-compare.cpp

index 29d27ec..bc66a82 100644 (file)
@@ -843,6 +843,7 @@ def Most : DiagGroup<"most", [
     SizeofArrayArgument,
     SizeofArrayDecay,
     StringPlusInt,
+    TautologicalCompare,
     Trigraphs,
     Uninitialized,
     UnknownPragmas,
diff --git a/clang/test/Misc/warning-wall.c b/clang/test/Misc/warning-wall.c
new file mode 100644 (file)
index 0000000..fadccee
--- /dev/null
@@ -0,0 +1,95 @@
+RUN: diagtool tree -Wall > %t 2>&1
+RUN: FileCheck --input-file=%t %s
+
+     CHECK:-Wall
+CHECK-NEXT:  -Wmost
+CHECK-NEXT:    -Wchar-subscripts
+CHECK-NEXT:    -Wcomment
+CHECK-NEXT:    -Wdelete-non-virtual-dtor
+CHECK-NEXT:      -Wdelete-non-abstract-non-virtual-dtor
+CHECK-NEXT:      -Wdelete-abstract-non-virtual-dtor
+CHECK-NEXT:    -Wfor-loop-analysis
+CHECK-NEXT:    -Wformat
+CHECK-NEXT:      -Wformat-extra-args
+CHECK-NEXT:      -Wformat-zero-length
+CHECK-NEXT:      -Wnonnull
+CHECK-NEXT:      -Wformat-security
+CHECK-NEXT:      -Wformat-y2k
+CHECK-NEXT:      -Wformat-invalid-specifier
+CHECK-NEXT:    -Wimplicit
+CHECK-NEXT:      -Wimplicit-function-declaration
+CHECK-NEXT:      -Wimplicit-int
+CHECK-NEXT:    -Winfinite-recursion
+CHECK-NEXT:    -Wint-in-bool-context
+CHECK-NEXT:    -Wmismatched-tags
+CHECK-NEXT:    -Wmissing-braces
+CHECK-NEXT:    -Wmove
+CHECK-NEXT:      -Wpessimizing-move
+CHECK-NEXT:      -Wredundant-move
+CHECK-NEXT:      -Wreturn-std-move
+CHECK-NEXT:      -Wself-move
+CHECK-NEXT:    -Wmultichar
+CHECK-NEXT:    -Wreorder
+CHECK-NEXT:      -Wreorder-ctor
+CHECK-NEXT:      -Wreorder-init-list
+CHECK-NEXT:    -Wreturn-type
+CHECK-NEXT:      -Wreturn-type-c-linkage
+CHECK-NEXT:    -Wself-assign
+CHECK-NEXT:      -Wself-assign-overloaded
+CHECK-NEXT:      -Wself-assign-field
+CHECK-NEXT:    -Wself-move
+CHECK-NEXT:    -Wsizeof-array-argument
+CHECK-NEXT:    -Wsizeof-array-decay
+CHECK-NEXT:    -Wstring-plus-int
+CHECK-NEXT:    -Wtautological-compare
+CHECK-NEXT:      -Wtautological-constant-compare
+CHECK-NEXT:        -Wtautological-constant-out-of-range-compare
+CHECK-NEXT:      -Wtautological-pointer-compare
+CHECK-NEXT:      -Wtautological-overlap-compare
+CHECK-NEXT:      -Wtautological-bitwise-compare
+CHECK-NEXT:      -Wtautological-undefined-compare
+CHECK-NEXT:      -Wtautological-objc-bool-compare
+CHECK-NEXT:    -Wtrigraphs
+CHECK-NEXT:    -Wuninitialized
+CHECK-NEXT:      -Wsometimes-uninitialized
+CHECK-NEXT:      -Wstatic-self-init
+CHECK-NEXT:    -Wunknown-pragmas
+CHECK-NEXT:    -Wunused
+CHECK-NEXT:      -Wunused-argument
+CHECK-NEXT:      -Wunused-function
+CHECK-NEXT:        -Wunneeded-internal-declaration
+CHECK-NEXT:      -Wunused-label
+CHECK-NEXT:      -Wunused-private-field
+CHECK-NEXT:      -Wunused-lambda-capture
+CHECK-NEXT:      -Wunused-local-typedef
+CHECK-NEXT:      -Wunused-value
+CHECK-NEXT:        -Wunused-comparison
+CHECK-NEXT:        -Wunused-result
+CHECK-NEXT:        -Wunevaluated-expression
+CHECK-NEXT:          -Wpotentially-evaluated-expression
+CHECK-NEXT:      -Wunused-variable
+CHECK-NEXT:        -Wunused-const-variable
+CHECK-NEXT:      -Wunused-property-ivar
+CHECK-NEXT:    -Wvolatile-register-var
+CHECK-NEXT:    -Wobjc-missing-super-calls
+CHECK-NEXT:    -Wobjc-designated-initializers
+CHECK-NEXT:    -Wobjc-flexible-array
+CHECK-NEXT:    -Woverloaded-virtual
+CHECK-NEXT:    -Wprivate-extern
+CHECK-NEXT:    -Wcast-of-sel-type
+CHECK-NEXT:    -Wextern-c-compat
+CHECK-NEXT:    -Wuser-defined-warnings
+CHECK-NEXT:  -Wparentheses
+CHECK-NEXT:    -Wlogical-op-parentheses
+CHECK-NEXT:    -Wlogical-not-parentheses
+CHECK-NEXT:    -Wbitwise-conditional-parentheses
+CHECK-NEXT:    -Wbitwise-op-parentheses
+CHECK-NEXT:    -Wshift-op-parentheses
+CHECK-NEXT:    -Woverloaded-shift-op-parentheses
+CHECK-NEXT:    -Wparentheses-equality
+CHECK-NEXT:    -Wdangling-else
+CHECK-NEXT:  -Wswitch
+CHECK-NEXT:  -Wswitch-bool
+
+
+CHECK-NOT:-W
index d08f1bf..08a8b08 100644 (file)
@@ -1,4 +1,5 @@
 // RUN: %clang_cc1 -fsyntax-only -verify -Wtautological-bitwise-compare %s
+// RUN: %clang_cc1 -fsyntax-only -verify -Wall -Wno-unused %s
 
 #define mydefine 2
 
index 0663125..e1e86d1 100644 (file)
@@ -1,4 +1,5 @@
 // RUN: %clang_cc1 -fsyntax-only -verify -Wtautological-overlap-compare %s
+// RUN: %clang_cc1 -fsyntax-only -verify -Wall -Wno-unused -Wno-loop-analysis %s
 
 #define mydefine 2
 
index 894d4c5..0fc3a6a 100644 (file)
@@ -1,4 +1,5 @@
 // RUN: %clang_cc1 -fsyntax-only -verify -Wtautological-bitwise-compare %s
+// RUN: %clang_cc1 -fsyntax-only -verify -Wall -Wno-unused %s
 
 void test(int x) {
   bool b1 = (8 & x) == 3;