diff options
author | Marcel Vollweiler <marcel@codesourcery.com> | 2022-05-02 23:56:44 -0700 |
---|---|---|
committer | Marcel Vollweiler <marcel@codesourcery.com> | 2022-05-02 23:56:44 -0700 |
commit | 941cdc8b6d29f9fe494fdd244e96a5e5aa08ba32 (patch) | |
tree | 2fd28aefc17121aa268953dace732e22305b3ccf /libgomp/testsuite/libgomp.c-c++-common/get-mapped-ptr-1.c | |
parent | 404edfce683cb1801b052ee7c8d45d603c392e08 (diff) | |
download | gcc-941cdc8b6d29f9fe494fdd244e96a5e5aa08ba32.zip gcc-941cdc8b6d29f9fe494fdd244e96a5e5aa08ba32.tar.gz gcc-941cdc8b6d29f9fe494fdd244e96a5e5aa08ba32.tar.bz2 |
OpenMP, libgomp: Add new runtime routine omp_get_mapped_ptr.
This patch adds the OpenMP runtime routine "omp_get_mapped_ptr" which was
introduced in OpenMP 5.1.
gcc/ChangeLog:
* omp-low.cc (omp_runtime_api_call): Added get_mapped_ptr to
omp_runtime_apis array.
libgomp/ChangeLog:
* libgomp.map: Added omp_get_mapped_ptr.
* libgomp.texi: Tagged omp_get_mapped_ptr as supported.
* omp.h.in: Added omp_get_mapped_ptr.
* omp_lib.f90.in: Added interface for omp_get_mapped_ptr.
* omp_lib.h.in: Likewise.
* target.c (omp_get_mapped_ptr): Added implementation of
omp_get_mapped_ptr.
* testsuite/libgomp.c-c++-common/get-mapped-ptr-1.c: New test.
* testsuite/libgomp.c-c++-common/get-mapped-ptr-2.c: New test.
* testsuite/libgomp.c-c++-common/get-mapped-ptr-3.c: New test.
* testsuite/libgomp.c-c++-common/get-mapped-ptr-4.c: New test.
* testsuite/libgomp.fortran/get-mapped-ptr-1.f90: New test.
* testsuite/libgomp.fortran/get-mapped-ptr-2.f90: New test.
* testsuite/libgomp.fortran/get-mapped-ptr-3.f90: New test.
* testsuite/libgomp.fortran/get-mapped-ptr-4.f90: New test.
Diffstat (limited to 'libgomp/testsuite/libgomp.c-c++-common/get-mapped-ptr-1.c')
-rw-r--r-- | libgomp/testsuite/libgomp.c-c++-common/get-mapped-ptr-1.c | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/libgomp/testsuite/libgomp.c-c++-common/get-mapped-ptr-1.c b/libgomp/testsuite/libgomp.c-c++-common/get-mapped-ptr-1.c new file mode 100644 index 0000000..97a60ca --- /dev/null +++ b/libgomp/testsuite/libgomp.c-c++-common/get-mapped-ptr-1.c @@ -0,0 +1,41 @@ +#include <omp.h> +#include <stdlib.h> + +int +main () +{ + int d = omp_get_default_device (); + int id = omp_get_initial_device (); + void *p , *q; + + if (d < 0 || d >= omp_get_num_devices ()) + d = id; + + p = omp_target_alloc (sizeof (int), d); + if (p == NULL) + return 0; + + if (omp_target_associate_ptr (q, p, sizeof (int), 0, d) != 0) + return 0; + + if (omp_get_mapped_ptr (q, -1) != NULL) + abort (); + + if (omp_get_mapped_ptr (q, omp_get_num_devices () + 1) != NULL) + abort (); + + if (omp_get_mapped_ptr (q, id) != q) + abort (); + + if (omp_get_mapped_ptr (q, d) != p) + abort (); + + if (omp_target_disassociate_ptr (q, d) != 0) + abort (); + + if (omp_get_mapped_ptr (q, d) != NULL) + abort (); + + omp_target_free (p, d); + return 0; +} |