<div dir="ltr">(Resending to correct mailing list address.)</div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Oct 9, 2015 at 3:23 PM, Richard Smith <span dir="ltr"><<a href="mailto:richard@metafoo.co.uk" target="_blank">richard@metafoo.co.uk</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><span class="">On Thu, Feb 7, 2013 at 8:05 AM, Guy Benyei <span dir="ltr"><<a href="mailto:guy.benyei@intel.com" target="_blank">guy.benyei@intel.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">Author: gbenyei<br>
Date: Thu Feb  7 10:05:33 2013<br>
New Revision: 174630<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=174630&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project?rev=174630&view=rev</a><br>
Log:<br>
Enable overloading of OpenCL events - this is needed for the overloaded OpenCL builtin functions.<br>
<br>
Added:<br>
    cfe/trunk/test/SemaOpenCL/<a href="http://event_t_overload.cl" rel="noreferrer" target="_blank">event_t_overload.cl</a><br>
Modified:<br>
    cfe/trunk/include/clang/Sema/Overload.h<br>
    cfe/trunk/lib/Sema/SemaExprCXX.cpp<br>
    cfe/trunk/lib/Sema/SemaOverload.cpp<br>
<br>
Modified: cfe/trunk/include/clang/Sema/Overload.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Sema/Overload.h?rev=174630&r1=174629&r2=174630&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Sema/Overload.h?rev=174630&r1=174629&r2=174630&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/include/clang/Sema/Overload.h (original)<br>
+++ cfe/trunk/include/clang/Sema/Overload.h Thu Feb  7 10:05:33 2013<br>
@@ -80,6 +80,7 @@ namespace clang {<br>
     ICK_Block_Pointer_Conversion,    ///< Block Pointer conversions<br>
     ICK_TransparentUnionConversion, /// Transparent Union Conversions<br>
     ICK_Writeback_Conversion,  ///< Objective-C ARC writeback conversion<br>
+    ICK_Zero_Event_Conversion, ///< Zero constant to event (OpenCL1.2 6.12.10)<br></blockquote><div><br></div></span><div>No corresponding change was made to clang::GetConversionRank; what should the conversion rank of this be?</div><div><div class="h5"><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
     ICK_Num_Conversion_Kinds   ///< The number of conversion kinds<br>
   };<br>
<br>
<br>
Modified: cfe/trunk/lib/Sema/SemaExprCXX.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaExprCXX.cpp?rev=174630&r1=174629&r2=174630&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaExprCXX.cpp?rev=174630&r1=174629&r2=174630&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/lib/Sema/SemaExprCXX.cpp (original)<br>
+++ cfe/trunk/lib/Sema/SemaExprCXX.cpp Thu Feb  7 10:05:33 2013<br>
@@ -2783,6 +2783,12 @@ Sema::PerformImplicitConversion(Expr *Fr<br>
     break;<br>
   }<br>
<br>
+  case ICK_Zero_Event_Conversion:<br>
+    From = ImpCastExprToType(From, ToType,<br>
+                             CK_ZeroToOCLEvent,<br>
+                             From->getValueKind()).take();<br>
+    break;<br>
+<br>
   case ICK_Lvalue_To_Rvalue:<br>
   case ICK_Array_To_Pointer:<br>
   case ICK_Function_To_Pointer:<br>
<br>
Modified: cfe/trunk/lib/Sema/SemaOverload.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaOverload.cpp?rev=174630&r1=174629&r2=174630&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaOverload.cpp?rev=174630&r1=174629&r2=174630&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/lib/Sema/SemaOverload.cpp (original)<br>
+++ cfe/trunk/lib/Sema/SemaOverload.cpp Thu Feb  7 10:05:33 2013<br>
@@ -1633,6 +1633,11 @@ static bool IsStandardConversion(Sema &S<br>
     // tryAtomicConversion has updated the standard conversion sequence<br>
     // appropriately.<br>
     return true;<br>
+  } else if (ToType->isEventT() &&<br>
+             From->isIntegerConstantExpr(S.getASTContext()) &&<br>
+             (From->EvaluateKnownConstInt(S.getASTContext()) == 0)) {<br>
+    SCS.Second = ICK_Zero_Event_Conversion;<br>
+    FromType = ToType;<br>
   } else {<br>
     // No second conversion required.<br>
     SCS.Second = ICK_Identity;<br>
@@ -4871,6 +4876,7 @@ static bool CheckConvertedConstantConver<br>
   case ICK_Identity:<br>
   case ICK_Integral_Promotion:<br>
   case ICK_Integral_Conversion:<br>
+  case ICK_Zero_Event_Conversion:<br>
     return true;<br>
<br>
   case ICK_Boolean_Conversion:<br>
<br>
Added: cfe/trunk/test/SemaOpenCL/<a href="http://event_t_overload.cl" rel="noreferrer" target="_blank">event_t_overload.cl</a><br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaOpenCL/event_t_overload.cl?rev=174630&view=auto" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaOpenCL/event_t_overload.cl?rev=174630&view=auto</a><br>
==============================================================================<br>
--- cfe/trunk/test/SemaOpenCL/<a href="http://event_t_overload.cl" rel="noreferrer" target="_blank">event_t_overload.cl</a> (added)<br>
+++ cfe/trunk/test/SemaOpenCL/<a href="http://event_t_overload.cl" rel="noreferrer" target="_blank">event_t_overload.cl</a> Thu Feb  7 10:05:33 2013<br>
@@ -0,0 +1,11 @@<br>
+// RUN: %clang_cc1 %s -verify -pedantic -fsyntax-only<br>
+<br>
+void __attribute__((overloadable)) foo(event_t, __local char *); // expected-note {{candidate function not viable: no known conversion from '__global int *' to '__local char *' for 2nd argument}}<br>
+void __attribute__((overloadable)) foo(event_t, __local float *); // expected-note {{candidate function not viable: no known conversion from '__global int *' to '__local float *' for 2nd argument}}<br>
+<br>
+void kernel ker(__local char *src1, __local float *src2, __global int *src3) {<br>
+  event_t evt;<br>
+  foo(evt, src1);<br>
+  foo(0, src2);<br>
+  foo(evt, src3); // expected-error {{no matching function for call to 'foo'}}<br>
+}<br>
<br>
<br>
_______________________________________________<br>
cfe-commits mailing list<br>
<a href="mailto:cfe-commits@cs.uiuc.edu" target="_blank">cfe-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits" rel="noreferrer" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits</a><br>
</blockquote></div></div></div><br></div></div>
</blockquote></div><br></div>