Index: cfe/trunk/lib/Sema/SemaChecking.cpp =================================================================== --- cfe/trunk/lib/Sema/SemaChecking.cpp +++ cfe/trunk/lib/Sema/SemaChecking.cpp @@ -629,7 +629,9 @@ unsigned NumArgs = TheCall->getNumArgs(); if (NumArgs < 4) { - S.Diag(TheCall->getBeginLoc(), diag::err_typecheck_call_too_few_args); + S.Diag(TheCall->getBeginLoc(), + diag::err_typecheck_call_too_few_args_at_least) + << 0 << 4 << NumArgs; return true; } Index: cfe/trunk/test/SemaOpenCL/cl20-device-side-enqueue.cl =================================================================== --- cfe/trunk/test/SemaOpenCL/cl20-device-side-enqueue.cl +++ cfe/trunk/test/SemaOpenCL/cl20-device-side-enqueue.cl @@ -158,6 +158,8 @@ enqueue_kernel(default_queue, flags, ndrange, 1, &event_wait_list, &evt); // expected-error{{illegal call to enqueue_kernel, incorrect argument types}} enqueue_kernel(default_queue, flags, ndrange, 1, 1); // expected-error{{illegal call to enqueue_kernel, incorrect argument types}} + + enqueue_kernel(default_queue, ndrange, ^{}); // expected-error{{too few arguments to function call, expected at least 4, have 3}} } // Diagnostic tests for get_kernel_work_group_size and allowed block parameter types in dynamic parallelism.