================
@@ -4700,7 +4700,8 @@ void Sema::AddModeAttr(Decl *D, const AttributeCommonInfo 
&CI,
 
   if (NewElemTy.isNull()) {
     // Only emit diagnostic on host for 128-bit mode attribute
-    if (!(DestWidth == 128 && getLangOpts().CUDAIsDevice))
+    if (!(DestWidth == 128 &&
+          (getLangOpts().CUDAIsDevice || getLangOpts().SYCLIsDevice)))
----------------
npmiller wrote:

Not sure exactly how it works for OpenMP, but it doesn't seem to be affected, 
with a `float128.cpp` file just containing:

 ```cpp
 typedef _Complex float __cfloat128 __attribute__ ((__mode__ (__TC__)));
 ```
 
 And testing without this patch:
 
 With SYCL:
 ```
$ ./bin/clang++ float128.cpp -fsycl -fsycl-targets=nvptx64-nvidia-cuda -Xclang 
-fsycl-is-device -fsyntax-only -o o
 float128.cpp:1:52: error: unsupported machine mode '__TC__'
    1 | typedef _Complex float __cfloat128 __attribute__ ((__mode__ (__TC__)));
      |                                                    ^
1 error generated.
$
 ```
 
 With OpenMP:
 ```
$ ./bin/clang++ ../build/float128.cpp -fopenmp 
-fopenmp-targets=nvptx64-nvidia-cuda -Xclang -fopenmp-is-target-device 
-fsyntax-only -o o
$
 ```
 
 And same thing without specifying an OpenMP target.

https://github.com/llvm/llvm-project/pull/128513
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to