diff gcc/testsuite/c-c++-common/gomp/declare-target-3.c @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gcc/testsuite/c-c++-common/gomp/declare-target-3.c	Thu Oct 25 07:37:49 2018 +0900
@@ -0,0 +1,53 @@
+/* { dg-do compile } */
+/* { dg-options "-fopenmp" } */
+
+#pragma omp declare target
+int a[] = { 1, 2, 3 };
+extern int b[];			/* { dg-error "'b' in declare target directive does not have mappable type" } */
+extern int c[];			/* { dg-error "'c' in declare target directive does not have mappable type" } */
+extern int d[];			/* { dg-error "'d' in declare target directive does not have mappable type" } */
+int d[3];
+#pragma omp end declare target
+int c[3];
+int e[] = { 1, 2, 3 };
+#pragma omp declare target to (e)
+extern int f[];
+#pragma omp declare target to (f) /* { dg-error "'f' does not have a mappable type in 'to' clause" } */
+extern int g[];
+#pragma omp declare target to (g) /* { dg-error "'g' does not have a mappable type in 'to' clause" } */
+int g[3];
+extern int h[];
+int h[3];
+#pragma omp declare target to (h)
+
+int i[] = { 1, 2, 3 };
+int j[] = { 1, 2, 3 };
+extern int k[];
+extern int l[];
+extern int m[];
+extern int n[];
+extern int o[];
+extern int p[];
+int k[3];
+int l[3];
+int q;
+
+void
+foo (void)
+{
+  #pragma omp target update to (q) to (i)
+  #pragma omp target map (tofrom: j)
+  ;
+  #pragma omp target update from (q) from (k)
+  #pragma omp target map (to: l)
+  ;
+  #pragma omp target update from (q) from (m)	/* { dg-error "'m' does not have a mappable type in 'from' clause" } */
+  #pragma omp target map (from: n)		/* { dg-error "'n' does not have a mappable type in 'map' clause" } */
+  ;
+  #pragma omp target update to (q) to (o)	/* { dg-error "'o' does not have a mappable type in 'to' clause" } */
+  #pragma omp target map (from: p)		/* { dg-error "'p' does not have a mappable type in 'map' clause" } */
+  ;
+}
+
+int o[3];
+int p[3];