forked from OSchip/llvm-project
[OpenCL] Fix semantic check of ndrange_t for device_side_enqueue.
Check unqualified type for ndrange argument in device_side_enqueue so device_side_enqueue accept const and volatile qualified ndranges. Differential Revision: https://reviews.llvm.org/D31458 Patch by Dmitry Borisenkov! llvm-svn: 300988
This commit is contained in:
parent
428556c536
commit
b42f3c03bf
|
@ -408,7 +408,7 @@ static bool SemaOpenCLBuiltinEnqueueKernel(Sema &S, CallExpr *TheCall) {
|
|||
}
|
||||
|
||||
// Third argument is always an ndrange_t type.
|
||||
if (Arg2->getType().getAsString() != "ndrange_t") {
|
||||
if (Arg2->getType().getUnqualifiedType().getAsString() != "ndrange_t") {
|
||||
S.Diag(TheCall->getArg(2)->getLocStart(),
|
||||
diag::err_opencl_enqueue_kernel_expected_type)
|
||||
<< "'ndrange_t'";
|
||||
|
|
|
@ -1,12 +1,14 @@
|
|||
// RUN: %clang_cc1 %s -cl-std=CL2.0 -triple "spir-unknown-unknown" -verify -pedantic -fsyntax-only -DB32
|
||||
// RUN: %clang_cc1 %s -cl-std=CL2.0 -triple "spir64-unknown-unknown" -verify -pedantic -fsyntax-only -Wconversion -DWCONV
|
||||
// RUN: %clang_cc1 %s -cl-std=CL2.0 -triple "spir-unknown-unknown" -verify -pedantic -fsyntax-only -DB32 -DQUALS=
|
||||
// RUN: %clang_cc1 %s -cl-std=CL2.0 -triple "spir-unknown-unknown" -verify -pedantic -fsyntax-only -DB32 -DQUALS="const volatile"
|
||||
// RUN: %clang_cc1 %s -cl-std=CL2.0 -triple "spir64-unknown-unknown" -verify -pedantic -fsyntax-only -Wconversion -DWCONV -DQUALS=
|
||||
// RUN: %clang_cc1 %s -cl-std=CL2.0 -triple "spir64-unknown-unknown" -verify -pedantic -fsyntax-only -Wconversion -DWCONV -DQUALS="const volatile"
|
||||
|
||||
typedef struct {int a;} ndrange_t;
|
||||
// Diagnostic tests for different overloads of enqueue_kernel from Table 6.13.17.1 of OpenCL 2.0 Spec.
|
||||
kernel void enqueue_kernel_tests() {
|
||||
queue_t default_queue;
|
||||
unsigned flags = 0;
|
||||
ndrange_t ndrange;
|
||||
QUALS ndrange_t ndrange;
|
||||
clk_event_t evt;
|
||||
clk_event_t event_wait_list;
|
||||
clk_event_t event_wait_list2[] = {evt, evt};
|
||||
|
|
Loading…
Reference in New Issue