[clang] [clang] Remove diagnostic that came with `[[clang::preferred_type]]` (PR #70632)

Erich Keane via cfe-commits cfe-commits at lists.llvm.org
Mon Oct 30 07:42:26 PDT 2023


================
@@ -5928,28 +5928,6 @@ static void handlePreferredTypeAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
   S.RequireCompleteType(ParmTSI->getTypeLoc().getBeginLoc(), QT,
                         diag::err_incomplete_type);
 
-  if (QT->isEnumeralType()) {
-    auto IsCorrespondingType = [&](QualType LHS, QualType RHS) {
-      assert(LHS != RHS);
-      if (LHS->isSignedIntegerType())
-        return LHS == S.getASTContext().getCorrespondingSignedType(RHS);
-      return LHS == S.getASTContext().getCorrespondingUnsignedType(RHS);
-    };
-    QualType BitfieldType =
-        cast<FieldDecl>(D)->getType()->getCanonicalTypeUnqualified();
-    QualType EnumUnderlyingType = QT->getAs<EnumType>()
-                                      ->getDecl()
-                                      ->getIntegerType()
-                                      ->getCanonicalTypeUnqualified();
-    if (EnumUnderlyingType != BitfieldType &&
-        !IsCorrespondingType(EnumUnderlyingType, BitfieldType)) {
----------------
erichkeane wrote:

I don't really see value for keeping this one, this was not my preferred use case in the original patch.  

I Still like the 'range' one I suggested, and I don't find the `UncommonNameKindOffset` to be particularly motivating.  

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


More information about the cfe-commits mailing list