I'm working on a full port of the API to Fortran and specifically the image structure cl_image_format conflicts with CL_IMAGE_FORMAT enum value for quering image info.
The problem is since Fortran is not type sensitive and just like in C, enums are available in global scope.
Actually this is not a problem with OpenCL 2.0, but also related to previous release.
The way I worked around this was to rename the enum values of cl_image_info to CL_IMAGE_INFO_FORMAT (same principal for others as well). Other than this, everything worked well.
An important note to mention, is that there is no good way to change scoping in Fortran that will solve the problem for users, this way or another they will have to use both constructs and a compiler error will raise.
One suggestion is to add the _INFO to all enums used for querying different objects, for conformance.
I do know that it can break previous versions support. But it's a chance to do something good.
As for the Fortran library, up to this point, it is the only place where full conformance to C OpenCL is broken.