[clang] [SYCL] Basic diagnostics for the sycl_kernel_entry_point attribute. (PR #120327)
Tom Honermann via cfe-commits
cfe-commits at lists.llvm.org
Wed Dec 18 11:15:50 PST 2024
================
@@ -12408,6 +12408,29 @@ def err_sycl_special_type_num_init_method : Error<
"types with 'sycl_special_class' attribute must have one and only one '__init' "
"method defined">;
+// SYCL kernel entry point diagnostics
+def err_sycl_entry_point_invalid : Error<
+ "'sycl_kernel_entry_point' attribute cannot be applied to a"
+ " %select{non-static member|variadic|deleted|defaulted|constexpr|consteval|"
+ "noreturn|coroutine}0 function">;
----------------
tahonermann wrote:
Just "coroutine" is what is commonly used, though I do see a couple of cases of "coroutine function" (only one of which is user facing):
```
def note_coroutine_promise_call_implicitly_required : Note<
"call to %0 implicitly required by coroutine function here">;
...
def note_coroutine_function_declare_noexcept : Note<
"must be declared with 'noexcept'"
>;
```
I agree a change is warranted. That additional `%select` is pretty ugly, but I do see similar precedent, so ok.
https://github.com/llvm/llvm-project/pull/120327
More information about the cfe-commits
mailing list