[clang] [clang] Implement `__builtin_is_implicit_lifetime()` (PR #101807)
Aaron Ballman via cfe-commits
cfe-commits at lists.llvm.org
Mon Aug 12 08:07:53 PDT 2024
================
@@ -5637,6 +5638,27 @@ static bool EvaluateUnaryTypeTrait(Sema &Self, TypeTrait UTT,
return false;
case UTT_IsTriviallyEqualityComparable:
return isTriviallyEqualityComparableType(Self, T, KeyLoc);
+ case UTT_IsImplicitLifetime: {
+ DiagnoseVLAInCXXTypeTrait(Self, TInfo,
+ tok::kw___builtin_is_implicit_lifetime);
+ QualType UnqualT = T->getCanonicalTypeUnqualified();
+ if (UnqualT->isScalarType())
----------------
AaronBallman wrote:
We definitely have to support (some) extensions, but hopefully they shouldn't be too onerous. Things like extended scalar types (all the various floating-point types, int128_t, etc) and vector types have to be supported. But also things like `_Complex`, sizeless types, zero-sized arrays, flexible array members in structures, etc.
https://github.com/llvm/llvm-project/pull/101807
More information about the cfe-commits
mailing list