r366546 - [OpenCL] Define CLK_NULL_EVENT without cast
Sven van Haastregt via cfe-commits
cfe-commits at lists.llvm.org
Fri Jul 19 02:11:48 PDT 2019
Author: svenvh
Date: Fri Jul 19 02:11:48 2019
New Revision: 366546
URL: http://llvm.org/viewvc/llvm-project?rev=366546&view=rev
Log:
[OpenCL] Define CLK_NULL_EVENT without cast
Defining CLK_NULL_EVENT with a `(void*)` cast has the (unintended?)
side-effect that the address space will be fixed (as generic in OpenCL
2.0 mode). The consequence is that any target specific address space
for the clk_event_t type will not be applied.
It is not clear why the void pointer cast was needed in the first
place, and it seems we can do without it.
Differential Revision: https://reviews.llvm.org/D63876
Modified:
cfe/trunk/lib/Headers/opencl-c-base.h
cfe/trunk/test/SemaOpenCL/clk_event_t.cl
Modified: cfe/trunk/lib/Headers/opencl-c-base.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Headers/opencl-c-base.h?rev=366546&r1=366545&r2=366546&view=diff
==============================================================================
--- cfe/trunk/lib/Headers/opencl-c-base.h (original)
+++ cfe/trunk/lib/Headers/opencl-c-base.h Fri Jul 19 02:11:48 2019
@@ -413,7 +413,7 @@ typedef enum memory_order
#define CLK_OUT_OF_RESOURCES -5
#define CLK_NULL_QUEUE 0
-#define CLK_NULL_EVENT (__builtin_astype(((void*)(__SIZE_MAX__)), clk_event_t))
+#define CLK_NULL_EVENT (__builtin_astype(((__SIZE_MAX__)), clk_event_t))
// execution model related definitions
#define CLK_ENQUEUE_FLAGS_NO_WAIT 0x0
Modified: cfe/trunk/test/SemaOpenCL/clk_event_t.cl
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaOpenCL/clk_event_t.cl?rev=366546&r1=366545&r2=366546&view=diff
==============================================================================
--- cfe/trunk/test/SemaOpenCL/clk_event_t.cl (original)
+++ cfe/trunk/test/SemaOpenCL/clk_event_t.cl Fri Jul 19 02:11:48 2019
@@ -2,7 +2,7 @@
// RUN: %clang_cc1 %s -verify -pedantic -fsyntax-only -cl-std=c++
// Taken from opencl-c.h
-#define CLK_NULL_EVENT (__builtin_astype(((void*)(__SIZE_MAX__)), clk_event_t))
+#define CLK_NULL_EVENT (__builtin_astype(((__SIZE_MAX__)), clk_event_t))
global clk_event_t ce; // expected-error {{the '__global clk_event_t' type cannot be used to declare a program scope variable}}
@@ -10,6 +10,7 @@ int clk_event_tests() {
event_t e;
clk_event_t ce1;
clk_event_t ce2;
+ clk_event_t ce3 = CLK_NULL_EVENT;
if (e == ce1) { // expected-error {{invalid operands to binary expression ('event_t' and 'clk_event_t')}}
return 9;
More information about the cfe-commits
mailing list