aboutsummaryrefslogtreecommitdiff
path: root/libgomp/plugin
diff options
context:
space:
mode:
authorTom de Vries <tdevries@suse.de>2018-08-06 22:13:46 +0000
committerTom de Vries <vries@gcc.gnu.org>2018-08-06 22:13:46 +0000
commit9e28b107796b79f09227de541543466a146162be (patch)
treea19609d27ea80e60f7fb0422ea6898c0eb8af245 /libgomp/plugin
parent611c75f0efa4351d91f18c8af3bba8ff2b8fa616 (diff)
downloadgcc-9e28b107796b79f09227de541543466a146162be.zip
gcc-9e28b107796b79f09227de541543466a146162be.tar.gz
gcc-9e28b107796b79f09227de541543466a146162be.tar.bz2
[libgomp, nvptx] Minimize lifetime of CUDA_ONE_CALL defines
This patch makes sure that the lifetimes of the CUDA_ONE_CALL macro (which is defined twice in plugin-nvptx.c) are minimized, to make it obvious that the definitions are used only in the lib-cuda.def include. Build on x86_64 with nvptx accelerator and reg-tested libgomp. 2018-08-07 Tom de Vries <tdevries@suse.de> * plugin/plugin-nvptx.c (struct cuda_lib_s, init_cuda_lib): Put CUDA_ONE_CALL defines right before the cuda-lib.def include, and the corresponding undefs right after. From-SVN: r263345
Diffstat (limited to 'libgomp/plugin')
-rw-r--r--libgomp/plugin/plugin-nvptx.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/libgomp/plugin/plugin-nvptx.c b/libgomp/plugin/plugin-nvptx.c
index cc465b4..2e72a63 100644
--- a/libgomp/plugin/plugin-nvptx.c
+++ b/libgomp/plugin/plugin-nvptx.c
@@ -52,10 +52,13 @@
#if PLUGIN_NVPTX_DYNAMIC
# include <dlfcn.h>
-# define CUDA_ONE_CALL(call) \
- __typeof (call) *call;
struct cuda_lib_s {
+
+# define CUDA_ONE_CALL(call) \
+ __typeof (call) *call;
#include "cuda-lib.def"
+# undef CUDA_ONE_CALL
+
} cuda_lib;
/* -1 if init_cuda_lib has not been called yet, false
@@ -74,18 +77,19 @@ init_cuda_lib (void)
cuda_lib_inited = false;
if (h == NULL)
return false;
-# undef CUDA_ONE_CALL
+
# define CUDA_ONE_CALL(call) CUDA_ONE_CALL_1 (call)
# define CUDA_ONE_CALL_1(call) \
cuda_lib.call = dlsym (h, #call); \
if (cuda_lib.call == NULL) \
return false;
#include "cuda-lib.def"
+# undef CUDA_ONE_CALL
+# undef CUDA_ONE_CALL_1
+
cuda_lib_inited = true;
return true;
}
-# undef CUDA_ONE_CALL
-# undef CUDA_ONE_CALL_1
# define CUDA_CALL_PREFIX cuda_lib.
#else
# define CUDA_CALL_PREFIX