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

Oliver Hunt via cfe-commits cfe-commits at lists.llvm.org
Tue Mar 25 09:11:37 PDT 2025


================
@@ -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;
----------------
ojhunt wrote:

this matches my thoughts - this warning exists specifically for projects where people are building for non ms platforms where the behavior on ms platforms matters, but there isn't necessarily a strict abi match


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


More information about the cfe-commits mailing list