[clang] Add an off-by-default warning to complain about MSVC bitfield padding (PR #117428)

Aaron Ballman via cfe-commits cfe-commits at lists.llvm.org
Tue Nov 26 11:08:26 PST 2024


================
@@ -6418,6 +6418,12 @@ def warn_signed_bitfield_enum_conversion : Warning<
   InGroup<BitFieldEnumConversion>, DefaultIgnore;
 def note_change_bitfield_sign : Note<
   "consider making the bitfield type %select{unsigned|signed}0">;
+def warn_ms_bitfield_mismatched_storage_packing : Warning<
+  "bit-field %0 of type %1 has a different storage size (%2 vs %3 bytes) than the "
+  "preceding bit-field and may not be packed under MSVC ABI">,
+  InGroup<MSBitfieldCompatibility>, DefaultIgnore;
----------------
AaronBallman wrote:

This seems like a warning we should probably enable by default when the user specifies `-fms-compatibility` or is compiling for an MSVC target. WDYT @rnk?

https://github.com/llvm/llvm-project/pull/117428


More information about the cfe-commits mailing list