aboutsummaryrefslogtreecommitdiff
path: root/libgomp
diff options
context:
space:
mode:
authorThomas Schwinge <thomas@codesourcery.com>2015-10-26 17:24:44 +0100
committerThomas Schwinge <tschwinge@gcc.gnu.org>2015-10-26 17:24:44 +0100
commitaa8b7d3051adfdd4ed6ef875de5e8bbebd0746d7 (patch)
tree7c1e10b20f55d7105ac57aed5fdfa1c88960b9ed /libgomp
parent7c8f138de604aea3d4bb29f8bc3303ddaa82959b (diff)
downloadgcc-aa8b7d3051adfdd4ed6ef875de5e8bbebd0746d7.zip
gcc-aa8b7d3051adfdd4ed6ef875de5e8bbebd0746d7.tar.gz
gcc-aa8b7d3051adfdd4ed6ef875de5e8bbebd0746d7.tar.bz2
libgomp: Additional acc_shutdown bug fixing and testing
libgomp/ * oacc-init.c (acc_shutdown): Call gomp_init_targets_once. * testsuite/libgomp.oacc-c-c++-common/lib-8.c: New file. From-SVN: r229380
Diffstat (limited to 'libgomp')
-rw-r--r--libgomp/ChangeLog3
-rw-r--r--libgomp/oacc-init.c2
-rw-r--r--libgomp/testsuite/libgomp.oacc-c-c++-common/lib-8.c19
3 files changed, 24 insertions, 0 deletions
diff --git a/libgomp/ChangeLog b/libgomp/ChangeLog
index e99f924..ad970df 100644
--- a/libgomp/ChangeLog
+++ b/libgomp/ChangeLog
@@ -1,5 +1,8 @@
2015-10-26 Thomas Schwinge <thomas@codesourcery.com>
+ * oacc-init.c (acc_shutdown): Call gomp_init_targets_once.
+ * testsuite/libgomp.oacc-c-c++-common/lib-8.c: New file.
+
PR libgomp/66518
* testsuite/libgomp.oacc-c-c++-common/lib-3.c: Resolve XFAIL.
diff --git a/libgomp/oacc-init.c b/libgomp/oacc-init.c
index a0e62a4..9a9a0b0 100644
--- a/libgomp/oacc-init.c
+++ b/libgomp/oacc-init.c
@@ -449,6 +449,8 @@ ialias (acc_init)
void
acc_shutdown (acc_device_t d)
{
+ gomp_init_targets_once ();
+
gomp_mutex_lock (&acc_device_lock);
acc_shutdown_1 (d);
diff --git a/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-8.c b/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-8.c
new file mode 100644
index 0000000..ea28b6b
--- /dev/null
+++ b/libgomp/testsuite/libgomp.oacc-c-c++-common/lib-8.c
@@ -0,0 +1,19 @@
+/* Expect error message when shutting down a device that has never been
+ initialized. */
+/* { dg-do run } */
+
+#include <stdio.h>
+#include <openacc.h>
+
+int
+main (int argc, char **argv)
+{
+ fprintf (stderr, "CheCKpOInT\n");
+ acc_shutdown (acc_device_default);
+
+ return 0;
+}
+
+/* { dg-output "CheCKpOInT(\n|\r\n|\r).*" } */
+/* { dg-output "no device initialized" } */
+/* { dg-shouldfail "" } */