diff --git a/opencl/api/opencl/amdocl/cl_program.cpp b/opencl/api/opencl/amdocl/cl_program.cpp index 3a2c15a4a3..7bd772a8f9 100644 --- a/opencl/api/opencl/amdocl/cl_program.cpp +++ b/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);