================ @@ -10601,19 +10608,28 @@ static bool AnalyzeBitFieldAssignment(Sema &S, FieldDecl *Bitfield, Expr *Init, // on Windows where unfixed enums always use an underlying type of 'int'. unsigned DiagID = 0; if (SignedEnum && !SignedBitfield) { - DiagID = diag::warn_unsigned_bitfield_assigned_signed_enum; + DiagID = + PTAttr == nullptr + ? diag::warn_unsigned_bitfield_assigned_signed_enum + : diag:: + warn_preferred_type_unsigned_bitfield_assigned_signed_enum; } else if (SignedBitfield && !SignedEnum && ED->getNumPositiveBits() == FieldWidth) { - DiagID = diag::warn_signed_bitfield_enum_conversion; + DiagID = + PTAttr == nullptr + ? diag::warn_signed_bitfield_enum_conversion + : diag::warn_preferred_type_signed_bitfield_enum_conversion; ---------------- ojhunt wrote:
@AaronBallman @cor3ntin @erichkeane I was tempted to do this as a set of defs like: ```cpp unsigned assigned_signed_enum_diag[] = {diag::warn_unsigned_bitfield_assigned_signed_enum, diag::warn_preferred_type_unsigned_bitfield_assigned_signed_enum}; ... DiagID = assigned_signed_enum_diag[PTAttr != nullptr]; ``` But that seemed like while being more concise it might be confusing, and potentially error prone? https://github.com/llvm/llvm-project/pull/116785 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits