@@ -624,19 +624,20 @@ Expr *constructTypedBufferConstraintExpr(Sema &S, SourceLocation NameLoc,
624624
625625 // first get the "sizeof(T) <= 16" expression, as a binary operator
626626 BinaryOperator *SizeOfLEQ16 = constructSizeOfLEQ16Expr (Context, NameLoc, T);
627- // TODO: add the '__builtin_hlsl_is_line_vector_layout_compatible ' builtin
627+ // TODO: add the 'builtin_hlsl_is_typed_resource_element_compatible ' builtin
628628 // and return a binary operator that evaluates the builtin on the given
629- // template type parameter 'T'
629+ // template type parameter 'T'.
630+ // Defined in issue https://github.com/llvm/llvm-project/issues/113223
630631 return SizeOfLEQ16;
631632}
632633
633- ConceptDecl *constructTypedBufferConceptDecl (Sema &S) {
634- DeclContext *DC = S.CurContext ;
634+ ConceptDecl *constructTypedBufferConceptDecl (Sema &S, NamespaceDecl *NSD) {
635635 ASTContext &Context = S.getASTContext ();
636+ DeclContext *DC = NSD->getDeclContext ();
636637 SourceLocation DeclLoc = SourceLocation ();
637638
638- IdentifierInfo &IsValidLineVectorII =
639- Context.Idents .get (" is_valid_line_vector " );
639+ IdentifierInfo &IsTypedResourceElementCompatibleII =
640+ Context.Idents .get (" __is_typed_resource_element_compatible " );
640641 IdentifierInfo &ElementTypeII = Context.Idents .get (" element_type" );
641642 TemplateTypeParmDecl *T = TemplateTypeParmDecl::Create (
642643 Context, Context.getTranslationUnitDecl (), DeclLoc, DeclLoc,
@@ -653,7 +654,8 @@ ConceptDecl *constructTypedBufferConceptDecl(Sema &S) {
653654 TemplateParameterList *ConceptParams = TemplateParameterList::Create (
654655 Context, DeclLoc, DeclLoc, {T}, DeclLoc, nullptr );
655656
656- DeclarationName DeclName = DeclarationName (&IsValidLineVectorII);
657+ DeclarationName DeclName =
658+ DeclarationName (&IsTypedResourceElementCompatibleII);
657659 Expr *ConstraintExpr = constructTypedBufferConstraintExpr (S, DeclLoc, T);
658660
659661 // Create a ConceptDecl
@@ -672,7 +674,8 @@ ConceptDecl *constructTypedBufferConceptDecl(Sema &S) {
672674
673675void HLSLExternalSemaSource::defineHLSLTypesWithForwardDeclarations () {
674676 CXXRecordDecl *Decl;
675- ConceptDecl *TypeBufferConcept = constructTypedBufferConceptDecl (*SemaPtr);
677+ ConceptDecl *TypeBufferConcept =
678+ constructTypedBufferConceptDecl (*SemaPtr, HLSLNamespace);
676679
677680 Decl = BuiltinTypeDeclBuilder (*SemaPtr, HLSLNamespace, " RWBuffer" )
678681 .addSimpleTemplateParams (*SemaPtr, {" element_type" },
0 commit comments