[PATCH] D66883: PR42045: Fix diagnosing enqueue_kernel call with too few args
This revision was automatically updated to reflect the committed changes. Closed by commit rL370322: [OpenCL] Fix diagnosing enqueue_kernel call with too few args (authored by svenvh, committed by ). Herald added a project: LLVM. Herald added a subscriber: llvm-commits. Changed prior to commit: https://reviews.llvm.org/D66883?vs=217642=217814#toc Repository: rL LLVM CHANGES SINCE LAST ACTION https://reviews.llvm.org/D66883/new/ https://reviews.llvm.org/D66883 Files: cfe/trunk/lib/Sema/SemaChecking.cpp cfe/trunk/test/SemaOpenCL/cl20-device-side-enqueue.cl 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, _wait_list, ); // 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. 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, _wait_list, ); // 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. 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; } ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D66883: PR42045: Fix diagnosing enqueue_kernel call with too few args
Anastasia accepted this revision. Anastasia added a comment. This revision is now accepted and ready to land. LGTM! Thanks! Repository: rC Clang CHANGES SINCE LAST ACTION https://reviews.llvm.org/D66883/new/ https://reviews.llvm.org/D66883 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D66883: PR42045: Fix diagnosing enqueue_kernel call with too few args
svenvh created this revision. svenvh added a reviewer: Anastasia. Herald added a project: clang. Herald added a subscriber: cfe-commits. The `err_typecheck_call_too_few_args diagnostic` takes arguments, but none were provided causing clang to crash when attempting to diagnose an enqueue_kernel call with too few arguments. Repository: rC Clang https://reviews.llvm.org/D66883 Files: clang/lib/Sema/SemaChecking.cpp clang/test/SemaOpenCL/cl20-device-side-enqueue.cl Index: clang/test/SemaOpenCL/cl20-device-side-enqueue.cl === --- clang/test/SemaOpenCL/cl20-device-side-enqueue.cl +++ clang/test/SemaOpenCL/cl20-device-side-enqueue.cl @@ -158,6 +158,8 @@ enqueue_kernel(default_queue, flags, ndrange, 1, _wait_list, ); // 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. Index: clang/lib/Sema/SemaChecking.cpp === --- clang/lib/Sema/SemaChecking.cpp +++ clang/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: clang/test/SemaOpenCL/cl20-device-side-enqueue.cl === --- clang/test/SemaOpenCL/cl20-device-side-enqueue.cl +++ clang/test/SemaOpenCL/cl20-device-side-enqueue.cl @@ -158,6 +158,8 @@ enqueue_kernel(default_queue, flags, ndrange, 1, _wait_list, ); // 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. Index: clang/lib/Sema/SemaChecking.cpp === --- clang/lib/Sema/SemaChecking.cpp +++ clang/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; } ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits