Fortran/OpenMP: Add memory routines existing for C/C++
This patch adds the Fortran interface for omp_alloc/omp_free and the omp_target_* memory routines, which were added in OpenMP 5.0 for C/C++ but only OpenMP 5.1 added them for Fortran. Those functions use BIND(C), i.e. on the libgomp side, the same interface as for C/C++ is used. Note: By using BIND(C) in omp_lib.h, files including this file no longer compiler with -std=f95 but require at least -std=f2003. libgomp/ChangeLog: * omp_lib.f90.in (omp_alloc, omp_free, omp_target_alloc, omp_target_free. omp_target_is_present, omp_target_memcpy, omp_target_memcpy_rect, omp_target_associate_ptr, omp_target_disassociate_ptr): Add interface. * omp_lib.h.in (omp_alloc, omp_free, omp_target_alloc, omp_target_free. omp_target_is_present, omp_target_memcpy, omp_target_memcpy_rect, omp_target_associate_ptr, omp_target_disassociate_ptr): Add interface. * testsuite/libgomp.fortran/alloc-1.F90: Remove local interface block for omp_alloc + omp_free. * testsuite/libgomp.fortran/alloc-4.f90: Likewise. * testsuite/libgomp.fortran/refcount-1.f90: New test. * testsuite/libgomp.fortran/target-12.f90: New test.
Showing
- libgomp/omp_lib.f90.in 94 additions, 0 deletionslibgomp/omp_lib.f90.in
- libgomp/omp_lib.h.in 97 additions, 0 deletionslibgomp/omp_lib.h.in
- libgomp/testsuite/libgomp.fortran/alloc-1.F90 0 additions, 16 deletionslibgomp/testsuite/libgomp.fortran/alloc-1.F90
- libgomp/testsuite/libgomp.fortran/alloc-4.f90 0 additions, 16 deletionslibgomp/testsuite/libgomp.fortran/alloc-4.f90
- libgomp/testsuite/libgomp.fortran/refcount-1.f90 61 additions, 0 deletionslibgomp/testsuite/libgomp.fortran/refcount-1.f90
- libgomp/testsuite/libgomp.fortran/target-12.f90 147 additions, 0 deletionslibgomp/testsuite/libgomp.fortran/target-12.f90
Loading
Please register or sign in to comment