Anastasia marked 4 inline comments as done.

================
Comment at: lib/Sema/SemaChecking.cpp:145
@@ +144,3 @@
+}
+
+/// OpenCL v2.0, s6.13.17.1 - Check that sizes are provided for all
----------------
I think the problem is that in C99 there are implicit casts among integer 
types, therefore making this check more restrictive would imply the cast has to 
be done explicitly instead.

Thus, this would have to be modified as follows:

  enqueue_kernel(...,  64); -> enqueue_kernel(...,  (uint)64); or 
enqueue_kernel(...,  64U);

which in my opinion is undesirable and also a bit unexpected because by analogy 
to C99 you can compile the following successfully:
  
  void g(unsigned);

  void f() {
    char i;
    g(i);
  }

I have added a check for a size however not to be larger than 32 bits and 
handled type cast in CodeGen. The test cases are added too.

What's your opinion about it?

================
Comment at: lib/Sema/SemaChecking.cpp:302
@@ +301,3 @@
+
+  // None of the specific case has been detected, give generic error
+  S.Diag(TheCall->getLocStart(),
----------------
This error is when we can't deduce exactly which overload is meant to be and we 
are giving more general error (like it's ambiguous). You can see some examples 
in tests. We could of course go further and specify possible candidates, but it 
would complicate the story even more.


http://reviews.llvm.org/D20249



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

Reply via email to