[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