I was doing a dummy implementation and I find out that the definition of CL_INVALID_DEVICE_LIST is missing in the .h file,
it is supposed to be returned by clCreateContext if the list of devices specified cannot be used together to create a context.
Should not be defined there? Perhaps in between the following lines
#define CL_INVALID_VALUE -30
#define CL_INVALID_DEVICE_TYPE -31
#define CL_INVALID_DEVICE -32
#define CL_INVALID_CONTEXT -33