summaryrefslogtreecommitdiffstats
path: root/clang/test/SemaCUDA/no-call-stack-for-immediate-errs.cu
diff options
context:
space:
mode:
Diffstat (limited to 'clang/test/SemaCUDA/no-call-stack-for-immediate-errs.cu')
-rw-r--r--clang/test/SemaCUDA/no-call-stack-for-immediate-errs.cu17
1 files changed, 17 insertions, 0 deletions
diff --git a/clang/test/SemaCUDA/no-call-stack-for-immediate-errs.cu b/clang/test/SemaCUDA/no-call-stack-for-immediate-errs.cu
new file mode 100644
index 00000000000..6dc98695c1e
--- /dev/null
+++ b/clang/test/SemaCUDA/no-call-stack-for-immediate-errs.cu
@@ -0,0 +1,17 @@
+// RUN: %clang_cc1 -fcuda-is-device -fsyntax-only -verify %s
+
+#include "Inputs/cuda.h"
+
+// Here we should dump an error about the VLA in device_fn, but we should not
+// print a callstack indicating how device_fn becomes known-emitted, because
+// it's an error to use a VLA in any __device__ function, even one that doesn't
+// get emitted.
+
+inline __device__ void device_fn(int n);
+inline __device__ void device_fn2() { device_fn(42); }
+
+__global__ void kernel() { device_fn2(); }
+
+inline __device__ void device_fn(int n) {
+ int vla[n]; // expected-error {{variable-length array}}
+}
OpenPOWER on IntegriCloud