[clang] [clang] Implement `__builtin_is_implicit_lifetime()` (PR #101807)
via cfe-commits
cfe-commits at lists.llvm.org
Wed Aug 14 05:48:48 PDT 2024
================
@@ -5637,6 +5638,38 @@ 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);
+
+ // [basic.types.general] p9
+ // Scalar types, implicit-lifetime class types ([class.prop]),
+ // array types, and cv-qualified versions of these types
+ // are collectively called implicit-lifetime types.
+ QualType UnqualT = T->getCanonicalTypeUnqualified();
----------------
cor3ntin wrote:
I don't think we want to old this PR on _Atomic, but I don't know what the answer ought to be.
Rejecting that code all together might be the most conservative solution.
@zygoloid
https://github.com/llvm/llvm-project/pull/101807
More information about the cfe-commits
mailing list