Anastasia added inline comments.

================
Comment at: lib/Frontend/InitPreprocessor.cpp:426
@@ +425,3 @@
+    case 110:
+      Builder.defineMacro("__CLANG_OPENCL_C_VERSION__", "110");
+      break;
----------------
So why we can't use unified __OPENCL_C_VERSION__?

================
Comment at: lib/Frontend/InitPreprocessor.cpp:438
@@ +437,3 @@
+    Builder.defineMacro("CL_VERSION_1_0", "100");
+    if (LangOpts.OpenCLVersion >= 110)
+      Builder.defineMacro("CL_VERSION_1_1", "110");
----------------
I am not sure we should add this conditionally though. If you want to compile 
CL code like this (forcing pointer to point to private AS for all CL versions 
the code is compiled for):

  #if __OPENCL_C_VERSION__ >= CL_VERSION_2_0
  private void* priv_ptr;
  #else
  void* priv_ptr;
  #endif

This code would fail with -cl-sdt=CL1.1 (because CL_VERSION_2_0 is no longer 
defined), but the purpose of having version macros is to be able to condition 
on the passed CL version in the particular compilation run to avoid the 
compiler failure/miscompilation. This way we provide a way to select the right 
CL code for all versions the code is being compiled (if such selection is 
needed) to allow portability of CL code among OpenCL version.


http://reviews.llvm.org/D19071



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to