================ @@ -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)) { ---------------- Endilll wrote:
> Another solution would be to compare the number of bits of the greater > enumerator with the number of bits in the bitfield. I've had this idea myself, but it's defeated by likes of https://github.com/llvm/llvm-project/blob/e79f0506cf6fd32ed466fdd2ccbb68dcacbb4bf5/clang/include/clang/AST/DeclarationName.h#L174-L185 where `UncommonNameKindOffset` is an enumerator that is not there to be stored in memory. https://github.com/llvm/llvm-project/pull/70632 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits