================ @@ -476,6 +476,41 @@ The SYCL kernel in the previous code sample meets these expectations. }]; } +def SYCLExternalDocs : Documentation { + let Category = DocCatFunction; + let Heading = "sycl_external"; + let Content = [{ +The ``sycl_external`` attribute indicates that a function defined in another +translation unit may be called by a device function defined in the current +translation unit or, if defined in the current translation unit, the function +may be called by device functions defined in other translation units. +The attribute is intended for use in the implementation of the ``SYCL_EXTERNAL`` +macro as specified in section 5.10.1, "SYCL functions and member functions +linkage", of the SYCL 2020 specification. +The attribute only appertains to functions and only those that meet the +following requirements. +* Has external linkage. +* Is not explicitly defined as deleted (the function may be an explicitly + defaulted function that is defined as deleted). +The attribute shall be present on the first declaration of a function and +may optionally be present on subsequent declarations. +When compiling for a SYCL device target that does not support the generic +address space, the function shall not specify a raw pointer or reference type +as the return type or as a parameter type. +See section 5.9, "Address-space deduction", of the SYCL 2020 specification. +The following examples demonstrate the use of this attribute: ---------------- tahonermann wrote:
I think blank lines are required between paragraphs and lists. ```suggestion The attribute only appertains to functions and only those that meet the following requirements. * Has external linkage. * Is not explicitly defined as deleted (the function may be an explicitly defaulted function that is defined as deleted). The attribute shall be present on the first declaration of a function and may optionally be present on subsequent declarations. When compiling for a SYCL device target that does not support the generic address space, the function shall not specify a raw pointer or reference type as the return type or as a parameter type. See section 5.9, "Address-space deduction", of the SYCL 2020 specification. The following examples demonstrate the use of this attribute: ``` https://github.com/llvm/llvm-project/pull/140282 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits