https://github.com/tahonermann requested changes to this pull request.
Thanks @elizabethandrews. I posted suggested documentation.
I think an additional
`clang/SemaSYCL/sycl-address-space-attr-appertainment.cpp` test along the lines
of `sycl-external-attr-appertainment.cpp` and
`sycl-kernel-entry-point-attr-appertainment.cpp` is warranted to validate that
appropriate diagnostics are issued for incorrect use of these attributes. That
test should exercise examples like the following (there are probably other
cases that should be exercised; this list likely isn't exhaustive).
```
[[clang::sycl_global]]; // Invalid.
namespace [[clang::sycl_global]] bad1 {} // Invalid.
struct [[clang::sycl_global]] bad2 {}; // Invalid.
enum [[clang::sycl_global]] bad3 {}; // Invalid.
enum {
bad4 [[clang::sycl_global]] // Invalid.
};
template<typename>
concept bad5 [[clang::sycl_global]] = true; // Invalid.
[[clang::sycl_global]] int bad6(); // Invalid.
int bad7(void (fp [[clang::sycl_global]])()); // Invalid.
int bad8() [[clang::sycl_global]]; // Invalid.
struct bad9 {
[[clang::sycl_global]] int mf(); // Invalid.
[[clang::sycl_global]] int dm; // Invalid.
};
struct S1;
int [[clang::sycl_global]] S1::*mpi; // Ok.
using global_int = int [[clang::sycl_global]]; // Ok.
using global_int_ptr = global_int*; // Ok.
global_int bad10; // Invalid.
global_int_ptr gip; // Ok.
```
https://github.com/llvm/llvm-project/pull/200849
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits