[Openmp-commits] [PATCH] D55148: [OpenMP] Implement OpenMP 5.0 Affinity Format Functionality

Jonathan Peyton via Phabricator via Openmp-commits openmp-commits at lists.llvm.org
Mon Oct 30 11:31:13 PDT 2023


jlpeyton added inline comments.


================
Comment at: runtime/src/include/50/omp_lib.h.var:427-446
+        subroutine omp_set_affinity_format(format)
+          character (len=*) :: format
+        end subroutine omp_set_affinity_format
+
+        function omp_get_affinity_format(buffer)
+          import
+          character (len=*) :: buffer
----------------
kiranchandramohan wrote:
> @jlpeyton @AndreyChurbanov Is there any particular reason that these functions are not `bind(c)`?
@kiranchandramohan , The reason stems from Fortran and C/C++ having different ways of representing strings. In Fortran, the strings don't have to be '\0' byte terminated and there is an implied string size argument for each string argument in the Fortran API. So for these API additions, there is a separate "truly Fortran" entry point (hence, the lack of bind(c)) and C/C++ entry point which eventually converge to a C/C++ oriented implementation i.e., all methods internally assume null-byte termination since the runtime library itself is written in C/C++.

I think we can almost always use bind(c) and only have one entry point in the library for both C/C++/Fortran, but in this case we needed to separate the Fortran API from the C/C++ API because it was the first OpenMP API that dealt with strings.


Repository:
  rOMP OpenMP

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D55148/new/

https://reviews.llvm.org/D55148



More information about the Openmp-commits mailing list