r287193 - Remove -Wsigned-enum-bitfield from -Wmost. On a wide set of ABIs, this warning

Richard Smith via cfe-commits cfe-commits at lists.llvm.org
Wed Nov 16 18:16:10 PST 2016


Author: rsmith
Date: Wed Nov 16 20:16:09 2016
New Revision: 287193

URL: http://llvm.org/viewvc/llvm-project?rev=287193&view=rev
Log:
Remove -Wsigned-enum-bitfield from -Wmost. On a wide set of ABIs, this warning
is completely irrelevant, producing (effectively) false positives, and -Wmost
is used pretty widely. We should somehow turn it back on by default when
targeting the MS ABI, however, since it indicates the program will not do as
intended in those cases.

(Or perhaps we should just treat enum bitfields as having the signedness of the
enum, even when targeting the MS ABI...)

Modified:
    cfe/trunk/include/clang/Basic/DiagnosticGroups.td
    cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td

Modified: cfe/trunk/include/clang/Basic/DiagnosticGroups.td
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/DiagnosticGroups.td?rev=287193&r1=287192&r2=287193&view=diff
==============================================================================
--- cfe/trunk/include/clang/Basic/DiagnosticGroups.td (original)
+++ cfe/trunk/include/clang/Basic/DiagnosticGroups.td Wed Nov 16 20:16:09 2016
@@ -662,7 +662,6 @@ def Most : DiagGroup<"most", [
     ReturnType,
     SelfAssignment,
     SelfMove,
-    SignedEnumBitfield,
     SizeofArrayArgument,
     SizeofArrayDecay,
     StringPlusInt,

Modified: cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td?rev=287193&r1=287192&r2=287193&view=diff
==============================================================================
--- cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td (original)
+++ cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td Wed Nov 16 20:16:09 2016
@@ -3023,7 +3023,7 @@ def warn_int_to_void_pointer_cast : Warn
 def warn_no_underlying_type_specified_for_enum_bitfield : Warning<
   "enums in the Microsoft ABI are signed integers by default; consider giving "
   "the enum %0 an unsigned underlying type to make this code portable">,
-  InGroup<DiagGroup<"signed-enum-bitfield">>, DefaultIgnore;
+  InGroup<SignedEnumBitfield>, DefaultIgnore;
 def warn_attribute_packed_for_bitfield : Warning<
   "'packed' attribute was ignored on bit-fields with single-byte alignment "
   "in older versions of GCC and Clang">,




More information about the cfe-commits mailing list