Anastasia added inline comments.
================ Comment at: lib/Sema/SemaOverload.cpp:6063 + // OpenCL: A candidate function that uses extentions that are not enabled or + // supported is not viable. + if (getLangOpts().OpenCL) { ---------------- I would imagine if extension isn't supported the candidate function with data type defined by extension shouldn't be available at all during compilation? Also is there any good way to generalize this for all types and extensions including vendor ones that are added with the pragmas? https://clang.llvm.org/docs/UsersManual.html#opencl-extensions ================ Comment at: test/SemaOpenCL/half-double-overload.cl:7 + +int __attribute__((overloadable)) goo(float in1, float in2); +half __attribute__((overloadable)) goo(double in1, double in2); ---------------- I think it will be clearer if candidates with non-half parameters moved out of extension enabled block. ================ Comment at: test/SemaOpenCL/half-double-overload.cl:18 +float __attribute__((overloadable)) foo_err(half in1, half in2); +// expected-note@-1 {{candidate disabled due to OpenCL extension}} +float __attribute__((overloadable)) foo_err(half in1, int in2); ---------------- Wondering if better message could be: candidate unavailable as it requires OpenCL extension to be disabled Could it also print the extension name? https://reviews.llvm.org/D51341 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits