@@ -28,6 +28,7 @@ int main() {
28
28
int data = 5 ;
29
29
int * data_addr = &data;
30
30
int * new_data_addr = nullptr ;
31
+ int *ptr_array[2 ];
31
32
test_struct s;
32
33
s.data = data;
33
34
kernel<class kernel_int >(
@@ -42,7 +43,9 @@ int main() {
42
43
kernel<class kernel_pointer >(
43
44
[=]() {
44
45
new_data_addr[0 ] = data_addr[0 ];
46
+ int *local = ptr_array[1 ];
45
47
});
48
+
46
49
const int some_const = 10 ;
47
50
test (some_const);
48
51
return 0 ;
@@ -88,48 +91,66 @@ int main() {
88
91
// CHECK-NEXT: ImplicitCastExpr {{.*}} 'int' <LValueToRValue>
89
92
// CHECK-NEXT: DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} '_arg_data' 'int'
90
93
// CHECK-NEXT: ImplicitCastExpr {{.*}} 'int *' <AddressSpaceConversion>
94
+ // CHECK-NEXT: ImplicitCastExpr {{.*}} '__global int *' <LValueToRValue>
91
95
// CHECK-NEXT: MemberExpr {{.*}} '__global int *' lvalue . {{.*}}
92
96
// CHECK-NEXT: DeclRefExpr {{.*}} '__wrapper_class' lvalue ParmVar {{.*}} '_arg_ptr' '__wrapper_class'
93
97
// CHECK-NEXT: InitListExpr {{.*}} 'int *[2]'
94
98
// CHECK-NEXT: ImplicitCastExpr {{.*}} 'int *' <AddressSpaceConversion>
99
+ // CHECK-NEXT: ImplicitCastExpr {{.*}} '__global int *' <LValueToRValue>
95
100
// CHECK-NEXT: MemberExpr {{.*}} '__global int *' lvalue . {{.*}}
96
101
// CHECK-NEXT: DeclRefExpr {{.*}} '__wrapper_class' lvalue ParmVar {{.*}} '_arg_ptr_array1' '__wrapper_class'
97
102
// CHECK-NEXT: ImplicitCastExpr {{.*}} 'int *' <AddressSpaceConversion>
103
+ // CHECK-NEXT: ImplicitCastExpr {{.*}} '__global int *' <LValueToRValue>
98
104
// CHECK-NEXT: MemberExpr {{.*}} '__global int *' lvalue . {{.*}}
99
105
// CHECK-NEXT: DeclRefExpr {{.*}} '__wrapper_class' lvalue ParmVar {{.*}} '_arg_ptr_array1' '__wrapper_class'
100
106
// CHECK-NEXT: InitListExpr {{.*}} 'int *[2][3]'
101
107
// CHECK-NEXT: InitListExpr {{.*}} 'int *[3]'
102
108
// CHECK-NEXT: ImplicitCastExpr {{.*}} 'int *' <AddressSpaceConversion>
109
+ // CHECK-NEXT: ImplicitCastExpr {{.*}} '__global int *' <LValueToRValue>
103
110
// CHECK-NEXT: MemberExpr {{.*}} '__global int *' lvalue . {{.*}}
104
111
// CHECK-NEXT: DeclRefExpr {{.*}} '__wrapper_class' lvalue ParmVar {{.*}} '_arg_ptr_array2' '__wrapper_class'
105
112
// CHECK-NEXT: ImplicitCastExpr {{.*}} 'int *' <AddressSpaceConversion>
113
+ // CHECK-NEXT: ImplicitCastExpr {{.*}} '__global int *' <LValueToRValue>
106
114
// CHECK-NEXT: MemberExpr {{.*}} '__global int *' lvalue . {{.*}}
107
115
// CHECK-NEXT: DeclRefExpr {{.*}} '__wrapper_class' lvalue ParmVar {{.*}} '_arg_ptr_array2' '__wrapper_class'
108
116
// CHECK-NEXT: ImplicitCastExpr {{.*}} 'int *' <AddressSpaceConversion>
117
+ // CHECK-NEXT: ImplicitCastExpr {{.*}} '__global int *' <LValueToRValue>
109
118
// CHECK-NEXT: MemberExpr {{.*}} '__global int *' lvalue . {{.*}}
110
119
// CHECK-NEXT: DeclRefExpr {{.*}} '__wrapper_class' lvalue ParmVar {{.*}} '_arg_ptr_array2' '__wrapper_class'
111
120
// CHECK-NEXT: InitListExpr {{.*}} 'int *[3]'
112
121
// CHECK-NEXT: ImplicitCastExpr {{.*}} 'int *' <AddressSpaceConversion>
122
+ // CHECK-NEXT: ImplicitCastExpr {{.*}} '__global int *' <LValueToRValue>
113
123
// CHECK-NEXT: MemberExpr {{.*}} '__global int *' lvalue . {{.*}}
114
124
// CHECK-NEXT: DeclRefExpr {{.*}} '__wrapper_class' lvalue ParmVar {{.*}} '_arg_ptr_array2' '__wrapper_class'
115
125
// CHECK-NEXT: ImplicitCastExpr {{.*}} 'int *' <AddressSpaceConversion>
126
+ // CHECK-NEXT: ImplicitCastExpr {{.*}} '__global int *' <LValueToRValue>
116
127
// CHECK-NEXT: MemberExpr {{.*}} '__global int *' lvalue . {{.*}}
117
128
// CHECK-NEXT: DeclRefExpr {{.*}} '__wrapper_class' lvalue ParmVar {{.*}} '_arg_ptr_array2' '__wrapper_class'
118
129
// CHECK-NEXT: ImplicitCastExpr {{.*}} 'int *' <AddressSpaceConversion>
130
+ // CHECK-NEXT: ImplicitCastExpr {{.*}} '__global int *' <LValueToRValue>
119
131
// CHECK-NEXT: MemberExpr {{.*}} '__global int *' lvalue . {{.*}}
120
132
// CHECK-NEXT: DeclRefExpr {{.*}} '__wrapper_class' lvalue ParmVar {{.*}} '_arg_ptr_array2' '__wrapper_class'
121
133
122
134
// Check kernel parameters
123
- // CHECK: {{.*}}kernel_pointer{{.*}} 'void (__global int *, __global int *)'
135
+ // CHECK: {{.*}}kernel_pointer{{.*}} 'void (__global int *, __global int *, __global int *, __global int *)'
136
+ // CHECK: ParmVarDecl {{.*}} used _arg_ '__global int *'
137
+ // CHECK: ParmVarDecl {{.*}} used _arg_ '__global int *'
124
138
// CHECK: ParmVarDecl {{.*}} used _arg_ '__global int *'
125
139
// CHECK: ParmVarDecl {{.*}} used _arg_ '__global int *'
126
140
// CHECK: VarDecl {{.*}}'(lambda at {{.*}}built-in-type-kernel-arg.cpp{{.*}})'
127
141
128
142
// Check that lambda fields of pointer types are initialized
129
143
// CHECK: InitListExpr
130
144
// CHECK-NEXT: ImplicitCastExpr {{.*}} 'int *' <AddressSpaceConversion>
145
+ // CHECK-NEXT: ImplicitCastExpr {{.*}} '__global int *' <LValueToRValue>
131
146
// CHECK-NEXT: DeclRefExpr {{.*}} '__global int *' lvalue ParmVar {{.*}} '_arg_' '__global int *'
132
147
// CHECK-NEXT: ImplicitCastExpr {{.*}} 'int *' <AddressSpaceConversion>
148
+ // CHECK-NEXT: ImplicitCastExpr {{.*}} '__global int *' <LValueToRValue>
149
+ // CHECK-NEXT: DeclRefExpr {{.*}} '__global int *' lvalue ParmVar {{.*}} '_arg_' '__global int *'
150
+ // CHECK: InitListExpr {{.*}} 'int *[2]'
151
+ // CHECK-NEXT: ImplicitCastExpr {{.*}} 'int *' <AddressSpaceConversion>
152
+ // CHECK-NEXT: ImplicitCastExpr {{.*}} '__global int *' <LValueToRValue>
153
+ // CHECK-NEXT: DeclRefExpr {{.*}} '__global int *' lvalue ParmVar {{.*}} '_arg_' '__global int *'
154
+ // CHECK-NEXT: ImplicitCastExpr {{.*}} 'int *' <AddressSpaceConversion>
155
+ // CHECK-NEXT: ImplicitCastExpr {{.*}} '__global int *' <LValueToRValue>
133
156
// CHECK-NEXT: DeclRefExpr {{.*}} '__global int *' lvalue ParmVar {{.*}} '_arg_' '__global int *'
134
-
135
- // Check kernel parameters
0 commit comments