@@ -38,11 +38,14 @@ int main() {
38
38
struct foo {
39
39
int foo_a;
40
40
foo_inner foo_b[2 ];
41
+ int foo_2D[2 ][1 ];
41
42
int foo_c;
42
43
};
43
44
44
45
foo struct_array[2 ];
45
46
47
+ int array_2D[2 ][3 ];
48
+
46
49
a_kernel<class kernel_A >(
47
50
[=]() {
48
51
acc[1 ].use ();
@@ -67,6 +70,11 @@ int main() {
67
70
[=]() {
68
71
int local = s.a [2 ];
69
72
});
73
+
74
+ a_kernel<class kernel_F >(
75
+ [=]() {
76
+ int local = array_2D[1 ][1 ];
77
+ });
70
78
}
71
79
72
80
// Check kernel_A parameters
@@ -111,8 +119,8 @@ int main() {
111
119
// CHECK-NEXT: ParmVarDecl {{.*}} used _arg_member_acc 'cl::sycl::id<1>'
112
120
// CHECK-NEXT: CompoundStmt
113
121
// CHECK-NEXT: DeclStmt
114
- // CHECK-NEXT: VarDecl {{.*}} used '(lambda at {{.*}}array-kernel-param.cpp:57:7 )' cinit
115
- // CHECK-NEXT: InitListExpr {{.*}} '(lambda at {{.*}}array-kernel-param.cpp:57:7 )'
122
+ // CHECK-NEXT: VarDecl {{.*}} used '(lambda at {{.*}}array-kernel-param.cpp{{.*}} )' cinit
123
+ // CHECK-NEXT: InitListExpr {{.*}} '(lambda at {{.*}}array-kernel-param.cpp{{.*}} )'
116
124
// CHECK-NEXT: InitListExpr {{.*}} 'struct_acc_t'
117
125
// CHECK-NEXT: InitListExpr {{.*}} 'Accessor [2]'
118
126
// CHECK-NEXT: CXXConstructExpr {{.*}} 'Accessor [2]'
@@ -125,7 +133,7 @@ int main() {
125
133
// CHECK-NEXT: MemberExpr {{.*}}__init
126
134
127
135
// Check kernel_D parameters
128
- // CHECK: FunctionDecl {{.*}}kernel_D{{.*}} 'void (int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int)'
136
+ // CHECK: FunctionDecl {{.*}}kernel_D{{.*}} 'void (int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int )'
129
137
// CHECK-NEXT: ParmVarDecl {{.*}} used _arg_foo_a 'int'
130
138
// CHECK-NEXT: ParmVarDecl {{.*}} used _arg_foo_inner_x 'int'
131
139
// CHECK-NEXT: ParmVarDecl {{.*}} used _arg_foo_inner_y 'int'
@@ -135,6 +143,8 @@ int main() {
135
143
// CHECK-NEXT: ParmVarDecl {{.*}} used _arg_foo_inner_y 'int'
136
144
// CHECK-NEXT: ParmVarDecl {{.*}} used _arg_foo_inner_z 'int'
137
145
// CHECK-NEXT: ParmVarDecl {{.*}} used _arg_foo_inner_z 'int'
146
+ // CHECK-NEXT: ParmVarDecl {{.*}} used _arg_foo_2D 'int'
147
+ // CHECK-NEXT: ParmVarDecl {{.*}} used _arg_foo_2D 'int'
138
148
// CHECK-NEXT: ParmVarDecl {{.*}} used _arg_foo_c 'int'
139
149
// CHECK-NEXT: ParmVarDecl {{.*}} used _arg_foo_a 'int'
140
150
// CHECK-NEXT: ParmVarDecl {{.*}} used _arg_foo_inner_x 'int'
@@ -145,6 +155,8 @@ int main() {
145
155
// CHECK-NEXT: ParmVarDecl {{.*}} used _arg_foo_inner_y 'int'
146
156
// CHECK-NEXT: ParmVarDecl {{.*}} used _arg_foo_inner_z 'int'
147
157
// CHECK-NEXT: ParmVarDecl {{.*}} used _arg_foo_inner_z 'int'
158
+ // CHECK-NEXT: ParmVarDecl {{.*}} used _arg_foo_2D 'int'
159
+ // CHECK-NEXT: ParmVarDecl {{.*}} used _arg_foo_2D 'int'
148
160
// CHECK-NEXT: ParmVarDecl {{.*}} used _arg_foo_c 'int'
149
161
// CHECK-NEXT: CompoundStmt
150
162
// CHECK-NEXT: DeclStmt
@@ -182,6 +194,13 @@ int main() {
182
194
// CHECK-NEXT: DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} '_arg_foo_inner_z' 'int'
183
195
// CHECK-NEXT: ImplicitCastExpr
184
196
// CHECK-NEXT: DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} '_arg_foo_inner_z' 'int'
197
+ // CHECK-NEXT: InitListExpr {{.*}} 'int [2][1]'
198
+ // CHECK-NEXT: InitListExpr {{.*}} 'int [1]'
199
+ // CHECK-NEXT: ImplicitCastExpr
200
+ // CHECK-NEXT: DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} '_arg_foo_2D' 'int'
201
+ // CHECK-NEXT: InitListExpr {{.*}} 'int [1]'
202
+ // CHECK-NEXT: ImplicitCastExpr
203
+ // CHECK-NEXT: DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} '_arg_foo_2D' 'int'
185
204
// CHECK-NEXT: ImplicitCastExpr
186
205
// CHECK-NEXT: DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} '_arg_foo_c' 'int'
187
206
@@ -210,6 +229,13 @@ int main() {
210
229
// CHECK-NEXT: DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} '_arg_foo_inner_z' 'int'
211
230
// CHECK-NEXT: ImplicitCastExpr
212
231
// CHECK-NEXT: DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} '_arg_foo_inner_z' 'int'
232
+ // CHECK-NEXT: InitListExpr {{.*}} 'int [2][1]'
233
+ // CHECK-NEXT: InitListExpr {{.*}} 'int [1]'
234
+ // CHECK-NEXT: ImplicitCastExpr
235
+ // CHECK-NEXT: DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} '_arg_foo_2D' 'int'
236
+ // CHECK-NEXT: InitListExpr {{.*}} 'int [1]'
237
+ // CHECK-NEXT: ImplicitCastExpr
238
+ // CHECK-NEXT: DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} '_arg_foo_2D' 'int'
213
239
// CHECK-NEXT: ImplicitCastExpr
214
240
// CHECK-NEXT: DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} '_arg_foo_c' 'int'
215
241
@@ -220,8 +246,8 @@ int main() {
220
246
// CHECK-NEXT: ParmVarDecl {{.*}} used _arg_a 'int':'int'
221
247
// CHECK-NEXT: CompoundStmt
222
248
// CHECK-NEXT: DeclStmt
223
- // CHECK-NEXT: VarDecl {{.*}} used '(lambda at {{.*}}array-kernel-param.cpp:67:7 )' cinit
224
- // CHECK-NEXT: InitListExpr {{.*}} '(lambda at {{.*}}array-kernel-param.cpp:67:7 )'
249
+ // CHECK-NEXT: VarDecl {{.*}} used '(lambda at {{.*}}array-kernel-param.cpp{{.*}} )' cinit
250
+ // CHECK-NEXT: InitListExpr {{.*}} '(lambda at {{.*}}array-kernel-param.cpp{{.*}} )'
225
251
// CHECK-NEXT: InitListExpr {{.*}} 'S<int>'
226
252
// CHECK-NEXT: InitListExpr {{.*}} 'int [3]'
227
253
// CHECK-NEXT: ImplicitCastExpr {{.*}} 'int':'int'
@@ -230,3 +256,32 @@ int main() {
230
256
// CHECK-NEXT: DeclRefExpr {{.*}} 'int':'int'
231
257
// CHECK-NEXT: ImplicitCastExpr {{.*}} 'int':'int'
232
258
// CHECK-NEXT: DeclRefExpr {{.*}} 'int':'int'
259
+
260
+ // Check kernel_F parameters
261
+ // CHECK: FunctionDecl {{.*}}kernel_F{{.*}} 'void (int, int, int, int, int, int)'
262
+ // CHECK-NEXT: ParmVarDecl {{.*}} used _arg_ 'int'
263
+ // CHECK-NEXT: ParmVarDecl {{.*}} used _arg_ 'int'
264
+ // CHECK-NEXT: ParmVarDecl {{.*}} used _arg_ 'int'
265
+ // CHECK-NEXT: ParmVarDecl {{.*}} used _arg_ 'int'
266
+ // CHECK-NEXT: ParmVarDecl {{.*}} used _arg_ 'int'
267
+ // CHECK-NEXT: ParmVarDecl {{.*}} used _arg_ 'int'
268
+ // Check kernel_F inits
269
+ // CHECK-NEXT: CompoundStmt
270
+ // CHECK-NEXT: DeclStmt
271
+ // CHECK-NEXT: VarDecl {{.*}} cinit
272
+ // CHECK-NEXT: InitListExpr
273
+ // CHECK-NEXT: InitListExpr {{.*}} 'int [2][3]'
274
+ // CHECK-NEXT: InitListExpr {{.*}} 'int [3]'
275
+ // CHECK-NEXT: ImplicitCastExpr
276
+ // CHECK-NEXT: DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} '_arg_' 'int'
277
+ // CHECK-NEXT: ImplicitCastExpr
278
+ // CHECK-NEXT: DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} '_arg_' 'int'
279
+ // CHECK-NEXT: ImplicitCastExpr
280
+ // CHECK-NEXT: DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} '_arg_' 'int'
281
+ // CHECK-NEXT: InitListExpr {{.*}} 'int [3]'
282
+ // CHECK-NEXT: ImplicitCastExpr
283
+ // CHECK-NEXT: DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} '_arg_' 'int'
284
+ // CHECK-NEXT: ImplicitCastExpr
285
+ // CHECK-NEXT: DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} '_arg_' 'int'
286
+ // CHECK-NEXT: ImplicitCastExpr
287
+ // CHECK-NEXT: DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} '_arg_' 'int'
0 commit comments