Hi,

when looking at why target-12.c and target-24.c in
libgomp/testsuite/libgomp.c/, I found two other places in libgomp's
target.c where shared-memory devices ought to be treated like the
host.  Committed to the branch.

Thanks,

Martin


2015-11-25  Martin Jambor  <mjam...@suse.cz>

libgomp/
        * target.c (omp_target_associate_ptr): Return EINVAL for shared
        memory devices.
        (omp_target_is_present): Return 1 for shared memory
        devices.
---
 libgomp/target.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/libgomp/target.c b/libgomp/target.c
index f8a9803..b453c0c 100644
--- a/libgomp/target.c
+++ b/libgomp/target.c
@@ -1922,7 +1922,8 @@ omp_target_is_present (void *ptr, int device_num)
   if (devicep == NULL)
     return 0;
 
-  if (!(devicep->capabilities & GOMP_OFFLOAD_CAP_OPENMP_400))
+  if (!(devicep->capabilities & GOMP_OFFLOAD_CAP_OPENMP_400)
+      || devicep->capabilities & GOMP_OFFLOAD_CAP_SHARED_MEM)
     return 1;
 
   gomp_mutex_lock (&devicep->lock);
@@ -2146,7 +2147,8 @@ omp_target_associate_ptr (void *host_ptr, void 
*device_ptr, size_t size,
   if (devicep == NULL)
     return EINVAL;
 
-  if (!(devicep->capabilities & GOMP_OFFLOAD_CAP_OPENMP_400))
+  if (!(devicep->capabilities & GOMP_OFFLOAD_CAP_OPENMP_400)
+      || devicep->capabilities & GOMP_OFFLOAD_CAP_SHARED_MEM)
     return EINVAL;
 
   gomp_mutex_lock (&devicep->lock);
-- 
2.6.0

Reply via email to