[clang] [Clang][Sema] Reject unsupported opencl address space attributes in SYCL and HLSL (PR #152528)

Mészáros Gergely via cfe-commits cfe-commits at lists.llvm.org
Fri Aug 8 05:29:45 PDT 2025


================
@@ -0,0 +1,25 @@
+// RUN: %clang_cc1 -fsyntax-only -verify %s
+// RUN: %clang_cc1 -fsyntax-only -x c++ -fsycl-is-host -verify %s
+// RUN: %clang_cc1 -fsyntax-only -x c++ -fsycl-is-device -verify=sycl %s
+// RUN: %clang_cc1 -fsyntax-only -x hlsl -triple dxil-pc-shadermodel6.3-library -verify=hlsl %s
+
+// hlsl-error@#constant{{'opencl_constant' attribute is not supported in HLSL}}
+// hlsl-error@#generic{{'opencl_generic' attribute is not supported in HLSL}}
+// hlsl-error@#global{{'opencl_global' attribute is not supported in HLSL}}
+// hlsl-error@#global_host{{'opencl_global_host' attribute is not supported in HLSL}}
+// hlsl-error@#global_device{{'opencl_global_device' attribute is not supported in HLSL}}
+// hlsl-error@#local{{'opencl_local' attribute is not supported in HLSL}}
+// hlsl-error@#private{{'opencl_private' attribute is not supported in HLSL}}
+
+// sycl-error@#constant{{'opencl_constant' attribute is not supported in SYCL when compiling for the device}}
----------------
Maetveis wrote:

TBH I'm not entirely sure why `opencl_*` is supported for C++/Obj-C/CUDA (why isn't this guarded by `getLangOpts().Opencl || getLangOpts().OpenCLCPlusPlus`) either, but I also didn't want to change that.

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


More information about the cfe-commits mailing list