]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
openmp: Add test for OMP_TARGET_OFFLOAD=mandatory for cases where it must not fail
authorJakub Jelinek <jakub@redhat.com>
Thu, 22 Oct 2020 07:33:17 +0000 (09:33 +0200)
committerKwok Cheung Yeung <kcy@codesourcery.com>
Fri, 13 Nov 2020 11:50:21 +0000 (03:50 -0800)
This is a backport from mainline (commit
17c5b7e1dc47bab6e6cedbf4b2d88cef3283533e).

2020-10-22  Jakub Jelinek  <jakub@redhat.com>

* testsuite/libgomp.c/target-41.c: New test.

libgomp/ChangeLog.omp
libgomp/testsuite/libgomp.c/target-41.c [new file with mode: 0644]

index 6dc9187181cb31b78894eb7139ea3dfc7d9e3bdf..f62909557a7e1c007f6d5deb135e74ad51878f77 100644 (file)
@@ -1,3 +1,10 @@
+2020-11-11  Kwok Cheung Yeung  <kcy@codesourcery.com>
+
+       Backport from mainline
+       2020-10-22  Jakub Jelinek  <jakub@redhat.com>
+
+       * testsuite/libgomp.c/target-41.c: New test.
+
 2020-11-11  Kwok Cheung Yeung  <kcy@codesourcery.com>
 
        Backport from mainline
diff --git a/libgomp/testsuite/libgomp.c/target-41.c b/libgomp/testsuite/libgomp.c/target-41.c
new file mode 100644 (file)
index 0000000..d8d756f
--- /dev/null
@@ -0,0 +1,33 @@
+/* { dg-set-target-env-var OMP_TARGET_OFFLOAD "mandatory" } */
+
+#include <omp.h>
+#include <stdlib.h>
+
+int v;
+
+void
+foo (void)
+{
+  v++;
+}
+
+#pragma omp declare target to (v, foo)
+
+int
+main ()
+{
+  /* OMP_TARGET_OFFLOAD=mandatory shouldn't fail for host fallback
+     if it is because the program explicitly asked for the host
+     fallback through if(false) or omp_get_initial_device () as
+     the device.  */
+  #pragma omp target if (v)
+  foo ();
+  #pragma omp target device (omp_get_initial_device ())
+  foo ();
+  omp_set_default_device (omp_get_initial_device ());
+  #pragma omp target
+  foo ();
+  if (v != 3)
+    abort ();
+  return 0;
+}