I just noticed a difference between the cl.h header file and the latest version of the OpenCL spec 1.33.
The header file says
extern CL_API_ENTRY cl_program CL_API_CALL
clCreateProgramWithBinary(cl_context /* context */,
cl_uint /* num_devices */,
const cl_device_id * /* device_list */,
const size_t * /* lengths */,
const char ** /* binaries */,
cl_int * /* binary_status */,
cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;
with binaries as (const char **). But on page 84 of the spec, it says
cl_program clCreateProgramWithBinary (cl_context context,
cl_uint num_devices,
const cl_device_id *device_list,
const size_t *lengths,
const void **binaries,
cl_int *binary_status,
cl_int *errcode_ret)
with binaries as (const void **).
Which is correct?