Anastasia added inline comments. ================ Comment at: lib/Frontend/InitPreprocessor.cpp:439 @@ +438,3 @@ + if (LangOpts.OpenCLVersion >= 110) + Builder.defineMacro("CL_VERSION_1_1", "110"); + if (LangOpts.OpenCLVersion >= 120) ---------------- yaxunl wrote: > yaxunl wrote: > > pxli168 wrote: > > > These macros maybe need for all cl version, and in the header we should > > > compare __OPENCL_C_VERSION__ with CL_VERSION_2_0 instead of the integer > > > 200 in the header of http://reviews.llvm.org/D18369? > > Each OpenCL version only defines some of these macros by spec. > > > > In the header file `__OPENCL_C_VERSION__` can compare with 200 since the > > spec defines the integer value for `__OPENCL_C_VERSION__`. Comparing with > > CL_VERSION_2_0 requires checking CL_VERSION_2_0 is available first. I think > > probably I can define a macro > > > > #define _OPENCL20_AND_ABOVE defined(__OPENCL_C_VERSION__) and > > defined(CL_VERSION_2_0) and __OPENCL_C_VERSION__ >= 200 > > > > and then use this macro for conditioning 2.0 specific functions. > should be > > #if defined(__OPENCL_C_VERSION__) && defined(CL_VERSION_2_0) && > __OPENCL_C_VERSION__ >= CL_VERSION_2_0 > #define _CL20_AND_ABOVE 1 > #endif > Where do you plan to add this code?
My point is that the code is a bit complicated and messy with this checks and on the other hand it's kind of logical that compiler supporting all CL version would also accept all CL_VERSION_X_Y macros irrespectively from the passed -cl-std flag... I don't think spec is being that explicit on how CL2.0 compliant compiler should enable those macros when earlier versions of -cl-std are being passed. http://reviews.llvm.org/D19071 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits