diff options
| author | Guy Benyei <guy.benyei@intel.com> | 2013-01-20 12:31:11 +0000 |
|---|---|---|
| committer | Guy Benyei <guy.benyei@intel.com> | 2013-01-20 12:31:11 +0000 |
| commit | 1b4fb3e08b28f12d508aec0bbdcb6f41cfb0ee38 (patch) | |
| tree | 5cf8e9985a92136f34520167b6a007eb00fe1468 /clang/test | |
| parent | 359e09d4f50f381dc85d64bc7ea4e06013d09779 (diff) | |
| download | bcm5719-llvm-1b4fb3e08b28f12d508aec0bbdcb6f41cfb0ee38.tar.gz bcm5719-llvm-1b4fb3e08b28f12d508aec0bbdcb6f41cfb0ee38.zip | |
Implement OpenCL event_t as Clang builtin type, including event_t related OpenCL restrictions (OpenCL 1.2 spec 6.9)
llvm-svn: 172973
Diffstat (limited to 'clang/test')
| -rw-r--r-- | clang/test/CodeGenOpenCL/event_t.cl | 12 | ||||
| -rw-r--r-- | clang/test/CodeGenOpenCL/opencl_types.cl | 2 | ||||
| -rw-r--r-- | clang/test/PCH/ocl_types.cl | 4 | ||||
| -rw-r--r-- | clang/test/PCH/ocl_types.h | 3 | ||||
| -rw-r--r-- | clang/test/SemaOpenCL/event_t.cl | 17 |
5 files changed, 38 insertions, 0 deletions
diff --git a/clang/test/CodeGenOpenCL/event_t.cl b/clang/test/CodeGenOpenCL/event_t.cl new file mode 100644 index 00000000000..ddf12a9d8b9 --- /dev/null +++ b/clang/test/CodeGenOpenCL/event_t.cl @@ -0,0 +1,12 @@ +// RUN: %clang_cc1 %s -emit-llvm -o - -O0 | FileCheck %s + +void foo(event_t evt); + +void kernel ker() { + event_t e; +// CHECK: alloca %opencl.event_t*, + foo(e); +// CHECK: call void @foo(%opencl.event_t* % + foo(0); +// CHECK: call void @foo(%opencl.event_t* null) +} diff --git a/clang/test/CodeGenOpenCL/opencl_types.cl b/clang/test/CodeGenOpenCL/opencl_types.cl index 35444ed9cbf..ab2ebe1ce71 100644 --- a/clang/test/CodeGenOpenCL/opencl_types.cl +++ b/clang/test/CodeGenOpenCL/opencl_types.cl @@ -19,4 +19,6 @@ void fnc3(image3d_t img) {} // CHECK: @fnc3(%opencl.image3d_t* kernel void foo(image1d_t img) { + event_t evt; +// CHECK: alloca %opencl.event_t* } diff --git a/clang/test/PCH/ocl_types.cl b/clang/test/PCH/ocl_types.cl index 972853b50fd..29de5e3a0eb 100644 --- a/clang/test/PCH/ocl_types.cl +++ b/clang/test/PCH/ocl_types.cl @@ -16,3 +16,7 @@ void foo4(img2d_t img); void foo5(img2darr_t img); void foo6(img3d_t img); + +void foo8(evt_t evt) { + evt_t loc_evt; +} diff --git a/clang/test/PCH/ocl_types.h b/clang/test/PCH/ocl_types.h index bec065afff1..829ea03151d 100644 --- a/clang/test/PCH/ocl_types.h +++ b/clang/test/PCH/ocl_types.h @@ -17,3 +17,6 @@ typedef image2d_array_t img2darr_t; // image3d_t typedef image3d_t img3d_t; + +// event_t +typedef event_t evt_t; diff --git a/clang/test/SemaOpenCL/event_t.cl b/clang/test/SemaOpenCL/event_t.cl new file mode 100644 index 00000000000..57a0981cf13 --- /dev/null +++ b/clang/test/SemaOpenCL/event_t.cl @@ -0,0 +1,17 @@ +// RUN: %clang_cc1 %s -verify -pedantic -fsyntax-only + +event_t glb_evt; // expected-error {{the event_t type cannot be used to declare a program scope variable}} + +struct evt_s { + event_t evt; // expected-error {{the event_t type cannot be used to declare a structure or union field}} +} evt_str; + +void foo(event_t evt); // expected-note {{passing argument to parameter 'evt' here}} + +void kernel ker(event_t argevt) { // expected-error {{the event_t type cannot be used to declare a kernel function argument}} + event_t e; + constant event_t const_evt; // expected-error {{the event_t type can only be used with __private address space qualifier}} + foo(e); + foo(0); + foo(5); // expected-error {{passing 'int' to parameter of incompatible type 'event_t'}} +} |

