r354680 - Revert "[OPENMP] Delayed diagnostics for VLA support."

Alexey Bataev via cfe-commits cfe-commits at lists.llvm.org
Fri Feb 22 09:16:50 PST 2019


Author: abataev
Date: Fri Feb 22 09:16:50 2019
New Revision: 354680

URL: http://llvm.org/viewvc/llvm-project?rev=354680&view=rev
Log:
Revert "[OPENMP] Delayed diagnostics for VLA support."

This reverts commit r354679 to fix the problem with the Windows
buildbots

Modified:
    cfe/trunk/lib/Sema/SemaType.cpp
    cfe/trunk/test/OpenMP/target_vla_messages.cpp
    cfe/trunk/test/SemaCUDA/vla.cu

Modified: cfe/trunk/lib/Sema/SemaType.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaType.cpp?rev=354680&r1=354679&r2=354680&view=diff
==============================================================================
--- cfe/trunk/lib/Sema/SemaType.cpp (original)
+++ cfe/trunk/lib/Sema/SemaType.cpp Fri Feb 22 09:16:50 2019
@@ -2250,13 +2250,15 @@ QualType Sema::BuildArrayType(QualType T
   }
 
   if (T->isVariableArrayType() && !Context.getTargetInfo().isVLASupported()) {
-    // CUDA device code and some other targets don't support VLAs.
-    targetDiag(Loc, (getLangOpts().CUDA && getLangOpts().CUDAIsDevice)
-                        ? diag::err_cuda_vla
-                        : diag::err_vla_unsupported)
-        << ((getLangOpts().CUDA && getLangOpts().CUDAIsDevice)
-                ? CurrentCUDATarget()
-                : CFT_InvalidTarget);
+    if (getLangOpts().CUDA) {
+      // CUDA device code doesn't support VLAs.
+      CUDADiagIfDeviceCode(Loc, diag::err_cuda_vla) << CurrentCUDATarget();
+    } else if (!getLangOpts().OpenMP ||
+               shouldDiagnoseTargetSupportFromOpenMP()) {
+      // Some targets don't support VLAs.
+      Diag(Loc, diag::err_vla_unsupported);
+      return QualType();
+    }
   }
 
   // If this is not C99, extwarn about VLA's and C99 array size modifiers.

Modified: cfe/trunk/test/OpenMP/target_vla_messages.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/target_vla_messages.cpp?rev=354680&r1=354679&r2=354680&view=diff
==============================================================================
--- cfe/trunk/test/OpenMP/target_vla_messages.cpp (original)
+++ cfe/trunk/test/OpenMP/target_vla_messages.cpp Fri Feb 22 09:16:50 2019
@@ -47,7 +47,7 @@ void target_template(int arg) {
 #pragma omp target
   {
 #ifdef NO_VLA
-    // expected-error at +2 2 {{variable length arrays are not supported for the current target}}
+    // expected-error at +2 {{variable length arrays are not supported for the current target}}
 #endif
     T vla[arg];
   }
@@ -73,9 +73,6 @@ void target(int arg) {
     }
   }
 
-#ifdef NO_VLA
-    // expected-note at +2 {{in instantiation of function template specialization 'target_template<long>' requested here}}
-#endif
   target_template<long>(arg);
 }
 

Modified: cfe/trunk/test/SemaCUDA/vla.cu
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaCUDA/vla.cu?rev=354680&r1=354679&r2=354680&view=diff
==============================================================================
--- cfe/trunk/test/SemaCUDA/vla.cu (original)
+++ cfe/trunk/test/SemaCUDA/vla.cu Fri Feb 22 09:16:50 2019
@@ -1,9 +1,5 @@
 // RUN: %clang_cc1 -triple nvptx64-nvidia-cuda -fcuda-is-device -verify %s
-// RUN: %clang_cc1 -triple x86_64-unknown-linux -verify -DHOST %s
-
-#ifndef __CUDA_ARCH__
-// expected-no-diagnostics
-#endif
+// RUN: %clang_cc1 -triple nvptx64-nvidia-cuda -verify -DHOST %s
 
 #include "Inputs/cuda.h"
 
@@ -12,10 +8,7 @@ void host(int n) {
 }
 
 __device__ void device(int n) {
-  int x[n];
-#ifdef __CUDA_ARCH__
-  // expected-error at -2 {{cannot use variable-length arrays in __device__ functions}}
-#endif
+  int x[n];  // expected-error {{cannot use variable-length arrays in __device__ functions}}
 }
 
 __host__ __device__ void hd(int n) {




More information about the cfe-commits mailing list