[clang] [HLSL] Add copy assignment and construtor to resource types (PR #156075)
Shafik Yaghmour via cfe-commits
cfe-commits at lists.llvm.org
Thu Sep 4 13:51:50 PDT 2025
================
@@ -431,6 +435,30 @@ Expr *BuiltinTypeMethodBuilder::getResourceHandleExpr() {
OK_Ordinary);
}
+template <typename T>
+BuiltinTypeMethodBuilder &
+BuiltinTypeMethodBuilder::getResourceHandle(T ResourceRecord) {
+ ensureCompleteDecl();
+
+ Expr *ResourceExpr = convertPlaceholder(ResourceRecord);
+
+ ASTContext &AST = DeclBuilder.SemaRef.getASTContext();
+ FieldDecl *HandleField = DeclBuilder.getResourceHandleField();
+ MemberExpr *HandleExpr = MemberExpr::CreateImplicit(
+ AST, ResourceExpr, false, HandleField, HandleField->getType(), VK_LValue,
+ OK_Ordinary);
+ StmtsList.push_back(HandleExpr);
+ return *this;
+}
+
+BuiltinTypeMethodBuilder &BuiltinTypeMethodBuilder::returnThis() {
+ ASTContext &AST = DeclBuilder.SemaRef.getASTContext();
+ CXXThisExpr *ThisExpr = CXXThisExpr::Create(
+ AST, SourceLocation(), Method->getFunctionObjectParameterType(), true);
----------------
shafik wrote:
```suggestion
AST, SourceLocation(), Method->getFunctionObjectParameterType(), /*IsImplicit=*/true);
```
https://github.com/llvm/llvm-project/pull/156075
More information about the cfe-commits
mailing list