@@ -103,6 +103,32 @@ RESOURCE<float> Buffer;
103103// CHECK-NEXT: CXXThisExpr {{.*}} 'hlsl::[[RESOURCE]]<element_type>' lvalue implicit this
104104// CHECK-NEXT: AlwaysInlineAttr
105105
106+ // Copy constructor
107+
108+ // CHECK: CXXConstructorDecl {{.*}} [[RESOURCE]]<element_type> 'void (const hlsl::[[RESOURCE]]<element_type> &)' inline
109+ // CHECK-NEXT: ParmVarDecl {{.*}} other 'const hlsl::[[RESOURCE]]<element_type> &'
110+ // CHECK-NEXT: CompoundStmt
111+ // CHECK-NEXT: BinaryOperator {{.*}} '='
112+ // CHECK-NEXT: MemberExpr {{.*}} lvalue .__handle
113+ // CHECK-NEXT: CXXThisExpr {{.*}} 'hlsl::[[RESOURCE]]<element_type>' lvalue implicit this
114+ // CHECK-NEXT: MemberExpr {{.*}} lvalue .__handle
115+ // CHECK-NEXT: DeclRefExpr {{.*}} 'const hlsl::[[RESOURCE]]<element_type>' ParmVar {{.*}} 'other' 'const hlsl::[[RESOURCE]]<element_type> &'
116+ // CHECK-NEXT: AlwaysInlineAttr
117+
118+ // operator=
119+
120+ // CHECK: CXXMethodDecl {{.*}} operator= 'hlsl::[[RESOURCE]]<element_type> &(const hlsl::[[RESOURCE]]<element_type> &)'
121+ // CHECK-NEXT: ParmVarDecl {{.*}} other 'const hlsl::[[RESOURCE]]<element_type> &'
122+ // CHECK-NEXT: CompoundStmt
123+ // CHECK-NEXT: BinaryOperator {{.*}} '='
124+ // CHECK-NEXT: MemberExpr {{.*}} lvalue .__handle
125+ // CHECK-NEXT: CXXThisExpr {{.*}} 'hlsl::[[RESOURCE]]<element_type>' lvalue implicit this
126+ // CHECK-NEXT: MemberExpr {{.*}} lvalue .__handle
127+ // CHECK-NEXT: DeclRefExpr {{.*}} 'const hlsl::[[RESOURCE]]<element_type>' ParmVar {{.*}} 'other' 'const hlsl::[[RESOURCE]]<element_type> &'
128+ // CHECK-NEXT: ReturnStmt
129+ // CHECK-NEXT: CXXThisExpr {{.*}} 'hlsl::[[RESOURCE]]<element_type>' lvalue implicit this
130+ // CHECK-NEXT: AlwaysInlineAttr
131+
106132// Constructor from binding
107133
108134// CHECK: CXXConstructorDecl {{.*}} [[RESOURCE]]<element_type> 'void (unsigned int, unsigned int, int, unsigned int, const char *)' inline
0 commit comments