[clang] [clang] Rework `hasBooleanRepresentation`. (PR #136038)
Aaron Ballman via cfe-commits
cfe-commits at lists.llvm.org
Thu Apr 17 04:23:49 PDT 2025
================
@@ -8623,6 +8624,13 @@ inline bool Type::isIntegralOrEnumerationType() const {
inline bool Type::isBooleanType() const {
if (const auto *BT = dyn_cast<BuiltinType>(CanonicalType))
return BT->getKind() == BuiltinType::Bool;
+ if (const EnumType *ET = dyn_cast<EnumType>(CanonicalType)) {
+ // Incomplete enum types are not treated as integer types.
+ // FIXME: In C++, enum types are never integer types.
+ return IsEnumDeclComplete(ET->getDecl()) &&
+ !IsEnumDeclScoped(ET->getDecl()) &&
----------------
AaronBallman wrote:
Why does the the enum being scoped matter?
https://github.com/llvm/llvm-project/pull/136038
More information about the cfe-commits
mailing list