diff --git a/projects/clr/opencl/api/opencl/amdocl/cl_program.cpp b/projects/clr/opencl/api/opencl/amdocl/cl_program.cpp index 3a2c15a4a3..7bd772a8f9 100644 --- a/projects/clr/opencl/api/opencl/amdocl/cl_program.cpp +++ b/projects/clr/opencl/api/opencl/amdocl/cl_program.cpp @@ -1562,8 +1562,10 @@ RUNTIME_ENTRY(cl_int, clSetKernelArg, } } if ((!is_local && (arg_size != desc.size_)) || (is_local && (arg_size == 0))) { - as_amd(kernel)->parameters().reset(static_cast(arg_index)); - return CL_INVALID_ARG_SIZE; + if (LP64_ONLY(true ||) (desc.type_ != T_POINTER) || (arg_size != sizeof(void*))) { + as_amd(kernel)->parameters().reset(static_cast(arg_index)); + return CL_INVALID_ARG_SIZE; + } } as_amd(kernel)->parameters().set(static_cast(arg_index), arg_size, arg_value);