Skip to content

Commit a3d7123

Browse files
committed
Add checks for copy constructor and operator=
1 parent 404b3c2 commit a3d7123

File tree

3 files changed

+78
-0
lines changed

3 files changed

+78
-0
lines changed

clang/test/AST/HLSL/ByteAddressBuffers-AST.hlsl

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,32 @@ RESOURCE Buffer;
5656
// CHECK-NEXT: CXXThisExpr {{.*}} 'hlsl::[[RESOURCE]]' lvalue implicit this
5757
// CHECK-NEXT: AlwaysInlineAttr
5858

59+
// Copy constructor
60+
61+
// CHECK: CXXConstructorDecl {{.*}} [[RESOURCE]] 'void (const hlsl::[[RESOURCE]] &)' inline
62+
// CHECK-NEXT: ParmVarDecl {{.*}} other 'const hlsl::[[RESOURCE]] &'
63+
// CHECK-NEXT: CompoundStmt
64+
// CHECK-NEXT: BinaryOperator {{.*}} '='
65+
// CHECK-NEXT: MemberExpr {{.*}} lvalue .__handle
66+
// CHECK-NEXT: CXXThisExpr {{.*}} 'hlsl::[[RESOURCE]]' lvalue implicit this
67+
// CHECK-NEXT: MemberExpr {{.*}} lvalue .__handle
68+
// CHECK-NEXT: DeclRefExpr {{.*}} 'const hlsl::[[RESOURCE]]' ParmVar {{.*}} 'other' 'const hlsl::[[RESOURCE]] &'
69+
// CHECK-NEXT: AlwaysInlineAttr
70+
71+
// operator=
72+
73+
// CHECK: CXXMethodDecl {{.*}} operator= 'hlsl::[[RESOURCE]] &(const hlsl::[[RESOURCE]] &)'
74+
// CHECK-NEXT: ParmVarDecl {{.*}} other 'const hlsl::[[RESOURCE]] &'
75+
// CHECK-NEXT: CompoundStmt
76+
// CHECK-NEXT: BinaryOperator {{.*}} '='
77+
// CHECK-NEXT: MemberExpr {{.*}} lvalue .__handle
78+
// CHECK-NEXT: CXXThisExpr {{.*}} 'hlsl::[[RESOURCE]]' lvalue implicit this
79+
// CHECK-NEXT: MemberExpr {{.*}} lvalue .__handle
80+
// CHECK-NEXT: DeclRefExpr {{.*}} 'const hlsl::[[RESOURCE]]' ParmVar {{.*}} 'other' 'const hlsl::[[RESOURCE]] &'
81+
// CHECK-NEXT: ReturnStmt
82+
// CHECK-NEXT: CXXThisExpr {{.*}} 'hlsl::[[RESOURCE]]' lvalue implicit this
83+
// CHECK-NEXT: AlwaysInlineAttr
84+
5985
// Constructor from binding
6086

6187
// CHECK: CXXConstructorDecl {{.*}} [[RESOURCE]] 'void (unsigned int, unsigned int, int, unsigned int, const char *)' inline

clang/test/AST/HLSL/StructuredBuffers-AST.hlsl

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

clang/test/AST/HLSL/TypedBuffers-AST.hlsl

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,32 @@ RESOURCE<float> Buffer;
7878
// CHECK-NEXT: CXXThisExpr {{.*}} 'hlsl::[[RESOURCE]]<element_type>' lvalue implicit this
7979
// CHECK-NEXT: AlwaysInlineAttr
8080

81+
// Copy constructor
82+
83+
// CHECK: CXXConstructorDecl {{.*}} [[RESOURCE]]<element_type> 'void (const hlsl::[[RESOURCE]]<element_type> &)' inline
84+
// CHECK-NEXT: ParmVarDecl {{.*}} other 'const hlsl::[[RESOURCE]]<element_type> &'
85+
// CHECK-NEXT: CompoundStmt
86+
// CHECK-NEXT: BinaryOperator {{.*}} '='
87+
// CHECK-NEXT: MemberExpr {{.*}} lvalue .__handle
88+
// CHECK-NEXT: CXXThisExpr {{.*}} 'hlsl::[[RESOURCE]]<element_type>' lvalue implicit this
89+
// CHECK-NEXT: MemberExpr {{.*}} lvalue .__handle
90+
// CHECK-NEXT: DeclRefExpr {{.*}} 'const hlsl::[[RESOURCE]]<element_type>' ParmVar {{.*}} 'other' 'const hlsl::[[RESOURCE]]<element_type> &'
91+
// CHECK-NEXT: AlwaysInlineAttr
92+
93+
// operator=
94+
95+
// CHECK: CXXMethodDecl {{.*}} operator= 'hlsl::[[RESOURCE]]<element_type> &(const hlsl::[[RESOURCE]]<element_type> &)'
96+
// CHECK-NEXT: ParmVarDecl {{.*}} other 'const hlsl::[[RESOURCE]]<element_type> &'
97+
// CHECK-NEXT: CompoundStmt
98+
// CHECK-NEXT: BinaryOperator {{.*}} '='
99+
// CHECK-NEXT: MemberExpr {{.*}} lvalue .__handle
100+
// CHECK-NEXT: CXXThisExpr {{.*}} 'hlsl::[[RESOURCE]]<element_type>' lvalue implicit this
101+
// CHECK-NEXT: MemberExpr {{.*}} lvalue .__handle
102+
// CHECK-NEXT: DeclRefExpr {{.*}} 'const hlsl::[[RESOURCE]]<element_type>' ParmVar {{.*}} 'other' 'const hlsl::[[RESOURCE]]<element_type> &'
103+
// CHECK-NEXT: ReturnStmt
104+
// CHECK-NEXT: CXXThisExpr {{.*}} 'hlsl::[[RESOURCE]]<element_type>' lvalue implicit this
105+
// CHECK-NEXT: AlwaysInlineAttr
106+
81107
// Constructor from binding
82108

83109
// CHECK: CXXConstructorDecl {{.*}} [[RESOURCE]]<element_type> 'void (unsigned int, unsigned int, int, unsigned int, const char *)' inline

0 commit comments

Comments
 (0)