eandrews created this revision.
eandrews added reviewers: lebedev.ri, rsmith, rjmccall, rnk, mclow.lists,
erichkeane.
GCC enables -Wtype-limits under -Wextra. Warnings under GCC's -Wtype-limits is
covered in Clang by -Wtautological-type-limit-compare and
-Wtautological-unsigned-zero-compare.
Since -Wtautological-type-limit-compare can fire spuriously when a type's size
is platform-dependent (as detailed in D41512
<https://reviews.llvm.org/D41512>), I am adding only
-Wtautological-unsigned-zero-compare to -Wextra.
I should point out that GCC does not throw warnings on pointless unsigned
expression comparisons inside templates while
-Wtautological-unsigned-zero-compare does. I figure this is a limitation in
GCC's implementation and don't think this is an issue but please feel free to
let me know if I am mistaken.
https://reviews.llvm.org/D51545
Files:
include/clang/Basic/DiagnosticGroups.td
test/Sema/tautological-unsigned-zero-compare.c
Index: test/Sema/tautological-unsigned-zero-compare.c
===================================================================
--- test/Sema/tautological-unsigned-zero-compare.c
+++ test/Sema/tautological-unsigned-zero-compare.c
@@ -8,6 +8,12 @@
// RUN: -verify -x c++ %s
// RUN: %clang_cc1 -fsyntax-only \
// RUN: -verify=silence -x c++ %s
+// RUN: %clang_cc1 -fsyntax-only \
+// RUN: -Wextra -Wno-sign-compare\
+// RUN: -verify %s
+// RUN: %clang_cc1 -fsyntax-only \
+// RUN: -Wextra -Wno-sign-compare\
+// RUN: -verify -x c++ %s
unsigned uvalue(void);
signed int svalue(void);
Index: include/clang/Basic/DiagnosticGroups.td
===================================================================
--- include/clang/Basic/DiagnosticGroups.td
+++ include/clang/Basic/DiagnosticGroups.td
@@ -763,7 +763,8 @@
MissingMethodReturnType,
SignCompare,
UnusedParameter,
- NullPointerArithmetic
+ NullPointerArithmetic,
+ TautologicalUnsignedZeroCompare
]>;
def Most : DiagGroup<"most", [
Index: test/Sema/tautological-unsigned-zero-compare.c
===================================================================
--- test/Sema/tautological-unsigned-zero-compare.c
+++ test/Sema/tautological-unsigned-zero-compare.c
@@ -8,6 +8,12 @@
// RUN: -verify -x c++ %s
// RUN: %clang_cc1 -fsyntax-only \
// RUN: -verify=silence -x c++ %s
+// RUN: %clang_cc1 -fsyntax-only \
+// RUN: -Wextra -Wno-sign-compare\
+// RUN: -verify %s
+// RUN: %clang_cc1 -fsyntax-only \
+// RUN: -Wextra -Wno-sign-compare\
+// RUN: -verify -x c++ %s
unsigned uvalue(void);
signed int svalue(void);
Index: include/clang/Basic/DiagnosticGroups.td
===================================================================
--- include/clang/Basic/DiagnosticGroups.td
+++ include/clang/Basic/DiagnosticGroups.td
@@ -763,7 +763,8 @@
MissingMethodReturnType,
SignCompare,
UnusedParameter,
- NullPointerArithmetic
+ NullPointerArithmetic,
+ TautologicalUnsignedZeroCompare
]>;
def Most : DiagGroup<"most", [
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits