diff options
author | Guy Benyei <guy.benyei@intel.com> | 2013-02-07 16:05:33 +0000 |
---|---|---|
committer | Guy Benyei <guy.benyei@intel.com> | 2013-02-07 16:05:33 +0000 |
commit | 6959acd4bb0979361365e675968173ede7183489 (patch) | |
tree | c71de84904ff096b8b5834f63d3acca49e759c1f /lib | |
parent | 51dbecf89c8cc453964a3d831ceea3bca1a25cb5 (diff) |
Enable overloading of OpenCL events - this is needed for the overloaded OpenCL builtin functions.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174630 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Sema/SemaExprCXX.cpp | 6 | ||||
-rw-r--r-- | lib/Sema/SemaOverload.cpp | 6 |
2 files changed, 12 insertions, 0 deletions
diff --git a/lib/Sema/SemaExprCXX.cpp b/lib/Sema/SemaExprCXX.cpp index c70041ba51..7f24af8be1 100644 --- a/lib/Sema/SemaExprCXX.cpp +++ b/lib/Sema/SemaExprCXX.cpp @@ -2783,6 +2783,12 @@ Sema::PerformImplicitConversion(Expr *From, QualType ToType, break; } + case ICK_Zero_Event_Conversion: + From = ImpCastExprToType(From, ToType, + CK_ZeroToOCLEvent, + From->getValueKind()).take(); + break; + case ICK_Lvalue_To_Rvalue: case ICK_Array_To_Pointer: case ICK_Function_To_Pointer: diff --git a/lib/Sema/SemaOverload.cpp b/lib/Sema/SemaOverload.cpp index ac9dec4e6c..6fa4137970 100644 --- a/lib/Sema/SemaOverload.cpp +++ b/lib/Sema/SemaOverload.cpp @@ -1633,6 +1633,11 @@ static bool IsStandardConversion(Sema &S, Expr* From, QualType ToType, // tryAtomicConversion has updated the standard conversion sequence // appropriately. return true; + } else if (ToType->isEventT() && + From->isIntegerConstantExpr(S.getASTContext()) && + (From->EvaluateKnownConstInt(S.getASTContext()) == 0)) { + SCS.Second = ICK_Zero_Event_Conversion; + FromType = ToType; } else { // No second conversion required. SCS.Second = ICK_Identity; @@ -4871,6 +4876,7 @@ static bool CheckConvertedConstantConversions(Sema &S, case ICK_Identity: case ICK_Integral_Promotion: case ICK_Integral_Conversion: + case ICK_Zero_Event_Conversion: return true; case ICK_Boolean_Conversion: |