From an OpenCL CTS issue comment, specifically KhronosGroup/OpenCL-CTS#2642 (comment):
The current error behavior for CL_DEVICE_COMPILER_AVAILABLE is a bit different than I'd expect:
Should it be valid to create a program from source or IL when a compiler is unavailable for all of the devices in the context? According to the letter of the spec, this is not an error, though this also does not seem particularly useful.
From an OpenCL CTS issue comment, specifically KhronosGroup/OpenCL-CTS#2642 (comment):