NULL macro maps to ((void*)0) for OpenCL versions earlier than 2.0
NULL was undefined in OpenCL prior to version 2.0. However, the
language specification states that `macro names defined by the C99
specification but not currently supported by OpenCL are reserved
for future use`. Therefore, application developers cannot redefine
NULL.
The change is supposed to resolve inconsistency between language
versions. Currently there is no apparent reason why NULL should
be kept undefined.
Fixes llvm.org/PR48102
I think we should drop #if here since the condition now includes both OpenCL kernel languages that clang supports.