summaryrefslogtreecommitdiffstats
path: root/clang/test/SemaCUDA
diff options
context:
space:
mode:
Diffstat (limited to 'clang/test/SemaCUDA')
-rw-r--r--clang/test/SemaCUDA/function-target-disabled-check.cu26
1 files changed, 26 insertions, 0 deletions
diff --git a/clang/test/SemaCUDA/function-target-disabled-check.cu b/clang/test/SemaCUDA/function-target-disabled-check.cu
new file mode 100644
index 00000000000..979d4edbf89
--- /dev/null
+++ b/clang/test/SemaCUDA/function-target-disabled-check.cu
@@ -0,0 +1,26 @@
+// Test that we can disable cross-target call checks in Sema with the
+// -fcuda-disable-target-call-checks flag. Without this flag we'd get a bunch
+// of errors here, since there are invalid cross-target calls present.
+
+// RUN: %clang_cc1 -fsyntax-only -verify %s -fcuda-disable-target-call-checks
+// RUN: %clang_cc1 -fsyntax-only -fcuda-is-device -verify %s -fcuda-disable-target-call-checks
+
+// expected-no-diagnostics
+
+#define __device__ __attribute__((device))
+#define __global__ __attribute__((global))
+#define __host__ __attribute__((host))
+
+__attribute__((host)) void h1();
+
+__attribute__((device)) void d1() {
+ h1();
+}
+
+__attribute__((host)) void h2() {
+ d1();
+}
+
+__attribute__((global)) void g1() {
+ h2();
+}
OpenPOWER on IntegriCloud