@@ -13,6 +13,8 @@ __attribute__((sycl_kernel)) void kernel(const Func &kernelFunc) {
13
13
struct test_struct {
14
14
int data;
15
15
int *ptr; // Unused pointer in struct
16
+ int *ptr_array1[2 ]; // Unused array of pointers in struct
17
+ int *ptr_array2[2 ][3 ]; // Unused array of pointers in struct
16
18
};
17
19
18
20
void test (const int some_const) {
@@ -66,9 +68,18 @@ int main() {
66
68
// CHECK-NEXT: DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} '_arg_' 'int'
67
69
68
70
// Check kernel parameters
69
- // CHECK: {{.*}}kernel_struct{{.*}} 'void (int, __wrapper_class)'
71
+ // CHECK: {{.*}}kernel_struct{{.*}} 'void (int, __wrapper_class, __wrapper_class, __wrapper_class
72
+ // CHECK-SAME: __wrapper_class, __wrapper_class, __wrapper_class, __wrapper_class, __wrapper_class, __wrapper_class)'
70
73
// CHECK: ParmVarDecl {{.*}} used _arg_data 'int'
71
74
// CHECK: ParmVarDecl {{.*}} used _arg_ptr '__wrapper_class'
75
+ // CHECK: ParmVarDecl {{.*}} used _arg_ptr_array1 '__wrapper_class'
76
+ // CHECK: ParmVarDecl {{.*}} used _arg_ptr_array1 '__wrapper_class'
77
+ // CHECK: ParmVarDecl {{.*}} used _arg_ptr_array2 '__wrapper_class'
78
+ // CHECK: ParmVarDecl {{.*}} used _arg_ptr_array2 '__wrapper_class'
79
+ // CHECK: ParmVarDecl {{.*}} used _arg_ptr_array2 '__wrapper_class'
80
+ // CHECK: ParmVarDecl {{.*}} used _arg_ptr_array2 '__wrapper_class'
81
+ // CHECK: ParmVarDecl {{.*}} used _arg_ptr_array2 '__wrapper_class'
82
+ // CHECK: ParmVarDecl {{.*}} used _arg_ptr_array2 '__wrapper_class'
72
83
73
84
// Check that lambda field of struct type is initialized
74
85
// CHECK: VarDecl {{.*}}'(lambda at {{.*}}built-in-type-kernel-arg.cpp{{.*}})'
@@ -79,6 +90,34 @@ int main() {
79
90
// CHECK-NEXT: ImplicitCastExpr {{.*}} 'int *' <AddressSpaceConversion>
80
91
// CHECK-NEXT: MemberExpr {{.*}} '__global int *' lvalue . {{.*}}
81
92
// CHECK-NEXT: DeclRefExpr {{.*}} '__wrapper_class' lvalue ParmVar {{.*}} '_arg_ptr' '__wrapper_class'
93
+ // CHECK-NEXT: InitListExpr {{.*}} 'int *[2]'
94
+ // CHECK-NEXT: ImplicitCastExpr {{.*}} 'int *' <AddressSpaceConversion>
95
+ // CHECK-NEXT: MemberExpr {{.*}} '__global int *' lvalue . {{.*}}
96
+ // CHECK-NEXT: DeclRefExpr {{.*}} '__wrapper_class' lvalue ParmVar {{.*}} '_arg_ptr_array1' '__wrapper_class'
97
+ // CHECK-NEXT: ImplicitCastExpr {{.*}} 'int *' <AddressSpaceConversion>
98
+ // CHECK-NEXT: MemberExpr {{.*}} '__global int *' lvalue . {{.*}}
99
+ // CHECK-NEXT: DeclRefExpr {{.*}} '__wrapper_class' lvalue ParmVar {{.*}} '_arg_ptr_array1' '__wrapper_class'
100
+ // CHECK-NEXT: InitListExpr {{.*}} 'int *[2][3]'
101
+ // CHECK-NEXT: InitListExpr {{.*}} 'int *[3]'
102
+ // CHECK-NEXT: ImplicitCastExpr {{.*}} 'int *' <AddressSpaceConversion>
103
+ // CHECK-NEXT: MemberExpr {{.*}} '__global int *' lvalue . {{.*}}
104
+ // CHECK-NEXT: DeclRefExpr {{.*}} '__wrapper_class' lvalue ParmVar {{.*}} '_arg_ptr_array2' '__wrapper_class'
105
+ // CHECK-NEXT: ImplicitCastExpr {{.*}} 'int *' <AddressSpaceConversion>
106
+ // CHECK-NEXT: MemberExpr {{.*}} '__global int *' lvalue . {{.*}}
107
+ // CHECK-NEXT: DeclRefExpr {{.*}} '__wrapper_class' lvalue ParmVar {{.*}} '_arg_ptr_array2' '__wrapper_class'
108
+ // CHECK-NEXT: ImplicitCastExpr {{.*}} 'int *' <AddressSpaceConversion>
109
+ // CHECK-NEXT: MemberExpr {{.*}} '__global int *' lvalue . {{.*}}
110
+ // CHECK-NEXT: DeclRefExpr {{.*}} '__wrapper_class' lvalue ParmVar {{.*}} '_arg_ptr_array2' '__wrapper_class'
111
+ // CHECK-NEXT: InitListExpr {{.*}} 'int *[3]'
112
+ // CHECK-NEXT: ImplicitCastExpr {{.*}} 'int *' <AddressSpaceConversion>
113
+ // CHECK-NEXT: MemberExpr {{.*}} '__global int *' lvalue . {{.*}}
114
+ // CHECK-NEXT: DeclRefExpr {{.*}} '__wrapper_class' lvalue ParmVar {{.*}} '_arg_ptr_array2' '__wrapper_class'
115
+ // CHECK-NEXT: ImplicitCastExpr {{.*}} 'int *' <AddressSpaceConversion>
116
+ // CHECK-NEXT: MemberExpr {{.*}} '__global int *' lvalue . {{.*}}
117
+ // CHECK-NEXT: DeclRefExpr {{.*}} '__wrapper_class' lvalue ParmVar {{.*}} '_arg_ptr_array2' '__wrapper_class'
118
+ // CHECK-NEXT: ImplicitCastExpr {{.*}} 'int *' <AddressSpaceConversion>
119
+ // CHECK-NEXT: MemberExpr {{.*}} '__global int *' lvalue . {{.*}}
120
+ // CHECK-NEXT: DeclRefExpr {{.*}} '__wrapper_class' lvalue ParmVar {{.*}} '_arg_ptr_array2' '__wrapper_class'
82
121
83
122
// Check kernel parameters
84
123
// CHECK: {{.*}}kernel_pointer{{.*}} 'void (__global int *, __global int *)'
0 commit comments