[clang] [clang][SYCL] Add sycl_external attribute and restrict emitting device code (PR #140282)

Tom Honermann via cfe-commits cfe-commits at lists.llvm.org
Tue Jun 24 10:31:45 PDT 2025


================
@@ -12856,6 +12856,14 @@ 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 external attribute diagnostics
+def err_sycl_attribute_invalid_linkage : Error<
+  "'sycl_external' can only be applied to functions with external linkage">;
+def err_sycl_attribute_avoid_main : Error<
+  "'sycl_external' cannot be applied to main function">;
+def err_sycl_attribute_avoid_deleted_function : Error<
+  "'sycl_external' cannot be applied to explicitly deleted functions">;
----------------
tahonermann wrote:

For consistency with other diagnostics (see `err_using_if_exists_on_ctor`, `err_attribute_dll_deleted`, and others).
```suggestion
def err_sycl_attribute_avoid_deleted_function : Error<
  "'sycl_external' cannot be applied to an explicitly deleted function">;
```

https://github.com/llvm/llvm-project/pull/140282


More information about the cfe-commits mailing list