Skip to content

Commit c400518

Browse files
authored
fix test_api negative_set_read_write_image_arg (#812)
clSetKernelArg is supposed to fail with CL_INVALID_ARG_VALUE when an image is created with CL_MEM_READ_ONLY is passed to a write_only kernel argument! (Got CL_SUCCESS, expected CL_INVALID_ARG_VALUE from <OpenCL-CTS>/test_conformance/api/test_kernels.cpp:842)
1 parent 3a5774a commit c400518

File tree

1 file changed

+11
-0
lines changed

1 file changed

+11
-0
lines changed

src/kernel.hpp

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -324,6 +324,17 @@ struct cvk_kernel_argument_values {
324324
return CL_INVALID_MEM_OBJECT;
325325
}
326326
auto mem = icd_downcast(apimem);
327+
if ((arg.info.access_qualifier ==
328+
CL_KERNEL_ARG_ACCESS_READ_ONLY &&
329+
mem->has_flags(CL_MEM_WRITE_ONLY)) ||
330+
(arg.info.access_qualifier ==
331+
CL_KERNEL_ARG_ACCESS_WRITE_ONLY &&
332+
mem->has_flags(CL_MEM_READ_ONLY)) ||
333+
(arg.info.access_qualifier ==
334+
CL_KERNEL_ARG_ACCESS_READ_WRITE &&
335+
!mem->has_flags(CL_MEM_READ_WRITE))) {
336+
return CL_INVALID_ARG_VALUE;
337+
}
327338
if (!mem->is_valid()) {
328339
return CL_INVALID_MEM_OBJECT;
329340
}

0 commit comments

Comments
 (0)