forked from OSchip/llvm-project
[OpenCL] reserve_id_t cannot be used as argument to kernel function
Reviewers: Anastasia Reviewed By: Anastasia Subscribers: yaxunl, cfe-commits, bader Differential Revision: https://reviews.llvm.org/D33483 llvm-svn: 303846
This commit is contained in:
parent
f4d62c480c
commit
1db4c88a9a
|
@ -7920,10 +7920,7 @@ static OpenCLParamType getOpenCLKernelParameterType(Sema &S, QualType PT) {
|
|||
if (PT->isImageType())
|
||||
return PtrKernelParam;
|
||||
|
||||
if (PT->isBooleanType())
|
||||
return InvalidKernelParam;
|
||||
|
||||
if (PT->isEventT())
|
||||
if (PT->isBooleanType() || PT->isEventT() || PT->isReserveIDT())
|
||||
return InvalidKernelParam;
|
||||
|
||||
// OpenCL extension spec v1.2 s9.5:
|
||||
|
|
|
@ -3,6 +3,11 @@
|
|||
global pipe int gp; // expected-error {{type '__global read_only pipe int' can only be used as a function parameter in OpenCL}}
|
||||
global reserve_id_t rid; // expected-error {{the '__global reserve_id_t' type cannot be used to declare a program scope variable}}
|
||||
|
||||
extern pipe write_only int get_pipe(); // expected-error {{type '__global write_only pipe int ()' can only be used as a function parameter in OpenCL}}
|
||||
|
||||
kernel void test_invalid_reserved_id(reserve_id_t ID) { // expected-error {{'reserve_id_t' cannot be used as the type of a kernel parameter}}
|
||||
}
|
||||
|
||||
void test1(pipe int *p) {// expected-error {{pipes packet types cannot be of reference type}}
|
||||
}
|
||||
void test2(pipe p) {// expected-error {{missing actual type specifier for pipe}}
|
||||
|
|
Loading…
Reference in New Issue