Hi!

OpenMP 5.0 is changing a couple of APIs, so that for pointer arguments where
the pointed array is not modified we use const void * instead of void *.

Committed to gomp-5_0-branch.

2017-06-12  Jakub Jelinek  <ja...@redhat.com>

        * omp.h.in (omp_target_is_present, omp_target_disassociate_ptr):
        Change first argument from void * to const void *.
        (omp_target_memcpy, omp_target_memcpy_rect): Change second argument
        from void * to const void *.
        (omp_target_associate_ptr): Change first and second arguments from
        void * to const void *.
        * target.c (omp_target_is_present, omp_target_disassociate_ptr):
        Change ptr argument from void * to const void *.
        (omp_target_memcpy): Change src argument from void * to const void *.
        (omp_target_memcpy_rect): Likewise.
        (omp_target_memcpy_rect_worker): Likewise.  Use const char * casts
        instead of char * where needed.
        (omp_target_associate_ptr): Change host_ptr and device_ptr arguments
        from void * to const void *.

--- libgomp/omp.h.in.jj 2017-05-13 20:12:43.000000000 +0200
+++ libgomp/omp.h.in    2017-06-12 10:21:38.342724889 +0200
@@ -144,19 +144,20 @@ extern int omp_get_max_task_priority (vo
 
 extern void *omp_target_alloc (__SIZE_TYPE__, int) __GOMP_NOTHROW;
 extern void omp_target_free (void *, int) __GOMP_NOTHROW;
-extern int omp_target_is_present (void *, int) __GOMP_NOTHROW;
-extern int omp_target_memcpy (void *, void *, __SIZE_TYPE__, __SIZE_TYPE__,
-                             __SIZE_TYPE__, int, int) __GOMP_NOTHROW;
-extern int omp_target_memcpy_rect (void *, void *, __SIZE_TYPE__, int,
+extern int omp_target_is_present (const void *, int) __GOMP_NOTHROW;
+extern int omp_target_memcpy (void *, const void *, __SIZE_TYPE__,
+                             __SIZE_TYPE__, __SIZE_TYPE__, int, int)
+  __GOMP_NOTHROW;
+extern int omp_target_memcpy_rect (void *, const void *, __SIZE_TYPE__, int,
                                   const __SIZE_TYPE__ *,
                                   const __SIZE_TYPE__ *,
                                   const __SIZE_TYPE__ *,
                                   const __SIZE_TYPE__ *,
                                   const __SIZE_TYPE__ *, int, int)
   __GOMP_NOTHROW;
-extern int omp_target_associate_ptr (void *, void *, __SIZE_TYPE__,
+extern int omp_target_associate_ptr (const void *, const void *, __SIZE_TYPE__,
                                     __SIZE_TYPE__, int) __GOMP_NOTHROW;
-extern int omp_target_disassociate_ptr (void *, int) __GOMP_NOTHROW;
+extern int omp_target_disassociate_ptr (const void *, int) __GOMP_NOTHROW;
 
 #ifdef __cplusplus
 }
--- libgomp/target.c.jj 2017-05-13 20:12:43.000000000 +0200
+++ libgomp/target.c    2017-06-12 10:25:41.051924583 +0200
@@ -2007,7 +2007,7 @@ omp_target_free (void *device_ptr, int d
 }
 
 int
-omp_target_is_present (void *ptr, int device_num)
+omp_target_is_present (const void *ptr, int device_num)
 {
   if (ptr == NULL)
     return 1;
@@ -2039,8 +2039,9 @@ omp_target_is_present (void *ptr, int de
 }
 
 int
-omp_target_memcpy (void *dst, void *src, size_t length, size_t dst_offset,
-                  size_t src_offset, int dst_device_num, int src_device_num)
+omp_target_memcpy (void *dst, const void *src, size_t length,
+                  size_t dst_offset, size_t src_offset, int dst_device_num,
+                  int src_device_num)
 {
   struct gomp_device_descr *dst_devicep = NULL, *src_devicep = NULL;
   bool ret;
@@ -2107,7 +2108,7 @@ omp_target_memcpy (void *dst, void *src,
 }
 
 static int
-omp_target_memcpy_rect_worker (void *dst, void *src, size_t element_size,
+omp_target_memcpy_rect_worker (void *dst, const void *src, size_t element_size,
                               int num_dims, const size_t *volume,
                               const size_t *dst_offsets,
                               const size_t *src_offsets,
@@ -2129,21 +2130,25 @@ omp_target_memcpy_rect_worker (void *dst
        return EINVAL;
       if (dst_devicep == NULL && src_devicep == NULL)
        {
-         memcpy ((char *) dst + dst_off, (char *) src + src_off, length);
+         memcpy ((char *) dst + dst_off, (const char *) src + src_off,
+                 length);
          ret = 1;
        }
       else if (src_devicep == NULL)
        ret = dst_devicep->host2dev_func (dst_devicep->target_id,
                                          (char *) dst + dst_off,
-                                         (char *) src + src_off, length);
+                                         (const char *) src + src_off,
+                                         length);
       else if (dst_devicep == NULL)
        ret = src_devicep->dev2host_func (src_devicep->target_id,
                                          (char *) dst + dst_off,
-                                         (char *) src + src_off, length);
+                                         (const char *) src + src_off,
+                                         length);
       else if (src_devicep == dst_devicep)
        ret = src_devicep->dev2dev_func (src_devicep->target_id,
                                         (char *) dst + dst_off,
-                                        (char *) src + src_off, length);
+                                        (const char *) src + src_off,
+                                        length);
       else
        ret = 0;
       return ret ? 0 : EINVAL;
@@ -2164,7 +2169,7 @@ omp_target_memcpy_rect_worker (void *dst
   for (j = 0; j < volume[0]; j++)
     {
       ret = omp_target_memcpy_rect_worker ((char *) dst + dst_off,
-                                          (char *) src + src_off,
+                                          (const char *) src + src_off,
                                           element_size, num_dims - 1,
                                           volume + 1, dst_offsets + 1,
                                           src_offsets + 1, dst_dimensions + 1,
@@ -2179,7 +2184,7 @@ omp_target_memcpy_rect_worker (void *dst
 }
 
 int
-omp_target_memcpy_rect (void *dst, void *src, size_t element_size,
+omp_target_memcpy_rect (void *dst, const void *src, size_t element_size,
                        int num_dims, const size_t *volume,
                        const size_t *dst_offsets,
                        const size_t *src_offsets,
@@ -2238,8 +2243,8 @@ omp_target_memcpy_rect (void *dst, void
 }
 
 int
-omp_target_associate_ptr (void *host_ptr, void *device_ptr, size_t size,
-                         size_t device_offset, int device_num)
+omp_target_associate_ptr (const void *host_ptr, const void *device_ptr,
+                         size_t size, size_t device_offset, int device_num)
 {
   if (device_num == GOMP_DEVICE_HOST_FALLBACK)
     return EINVAL;
@@ -2300,7 +2305,7 @@ omp_target_associate_ptr (void *host_ptr
 }
 
 int
-omp_target_disassociate_ptr (void *ptr, int device_num)
+omp_target_disassociate_ptr (const void *ptr, int device_num)
 {
   if (device_num == GOMP_DEVICE_HOST_FALLBACK)
     return EINVAL;

        Jakub

Reply via email to