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 cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits