================ @@ -472,10 +569,91 @@ static BuiltinTypeDeclBuilder setupBufferType(CXXRecordDecl *Decl, Sema &S, .addDefaultHandleConstructor(S); } +Expr *constructTypedBufferConstraintExpr(Sema &S, SourceLocation NameLoc, + TemplateTypeParmDecl *T) { + ASTContext &Context = S.getASTContext(); + + // Obtain the QualType for 'unsigned long' + QualType BoolTy = Context.BoolTy; + + // Create a QualType that points to this TemplateTypeParmDecl + QualType TType = Context.getTypeDeclType(T); + + // Create a TypeSourceInfo for the template type parameter 'T' + TypeSourceInfo *TTypeSourceInfo = + Context.getTrivialTypeSourceInfo(TType, NameLoc); + + TypeTraitExpr *TypedResExpr = TypeTraitExpr::Create( + Context, BoolTy, NameLoc, UTT_IsTypedResourceElementCompatible, + {TTypeSourceInfo}, NameLoc, true); + + TypeTraitExpr *IsIntangibleExpr = ---------------- llvm-beanz wrote:
You don't need to check whether or not it is intangible, you only need to check if it is typed resource element compatible, because all intangible types are not typed resource element compatible. https://github.com/llvm/llvm-project/pull/116413 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits