[OpenCL] Forbid size dependent types used as kernel arguments
authorAlexey Sotkin <alexey.sotkin@intel.com>
Tue, 31 Jul 2018 20:26:43 +0000 (20:26 +0000)
committerAlexey Sotkin <alexey.sotkin@intel.com>
Tue, 31 Jul 2018 20:26:43 +0000 (20:26 +0000)
commit9d1ee0acfb6a2b51afac501a07894ec0fcfc346f
tree425fc053e0922b8c931f7a87b36a5e721b68620b
parent907f4f6a74591938c44c61bede5de1a1b8e617ae
[OpenCL] Forbid size dependent types used as kernel arguments

Summary:
Size_t, intptr_t, uintptr_t and ptrdiff_t cannot be used as kernel
arguments, according to OpenCL Specification s6.9k:
The size in bytes of these types are implementation-defined and in
addition can also be different for the OpenCL device and the host
processor making it difficult to allocate buffer objects to be passed
as arguments to a kernel declared as pointer to these types.

Patch by: Andrew Savonichev

Reviewers: Anastasia, yaxunl

Subscribers: yaxunl, Anastasia, cfe-commits

Differential Revision: https://reviews.llvm.org/D49725

llvm-svn: 338432
clang/lib/Sema/SemaDecl.cpp
clang/test/SemaOpenCL/invalid-kernel-parameters.cl