From aa8b7d3051adfdd4ed6ef875de5e8bbebd0746d7 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Mon, 26 Oct 2015 17:24:44 +0100 Subject: [PATCH] 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 --- libgomp/ChangeLog | 3 +++ libgomp/oacc-init.c | 2 ++ .../libgomp.oacc-c-c++-common/lib-8.c | 19 +++++++++++++++++++ 3 files changed, 24 insertions(+) create mode 100644 libgomp/testsuite/libgomp.oacc-c-c++-common/lib-8.c diff --git a/libgomp/ChangeLog b/libgomp/ChangeLog index e99f9241d07..ad970df522f 100644 --- a/libgomp/ChangeLog +++ b/libgomp/ChangeLog @@ -1,5 +1,8 @@ 2015-10-26 Thomas Schwinge + * 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 a0e62a40cc4..9a9a0b0333f 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 00000000000..ea28b6bacf9 --- /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 +#include + +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 "" } */ -- 2.30.2