[Fortran, PATCH, coarray, v1] Extend caf_*_by_ref () API by a type specifier
Andre Vehreschild
vehre@gmx.de
Sun Feb 18 15:39:00 GMT 2018
Hi all,
attached patch fixes an issue with the coarray API. When a component of a
derived type coarray was referenced using a caf_*_by_ref () function and that
component was not an array with a descriptor, then the type of the component was
not known. Which additionally meant, that type conversion was not applied as
required. This patch fixes that issue by adding type specifiers to the three
caf_*_by_ref-calls and implements the functionality for libcaf_single. This is
harmless because other coarray libraries that do not expect this argument just
ignore it.
Additionally does this patch also provide the first working version of
caf_sendget_by_ref in libcaf_single, which previously only lead to a stack
corruption and was not usable since the array descriptor rework (nice job, btw).
I would like to have this patch in trunk knowing that I am somewhat late, but
it would be quite necessary, because as it is now, the coarray feature for
derived types is hardly usable. Furthermore do some people name this a
regression, because the caf_*_by_ref are also used when the lhs of a
caf_get_by_ref() is allocatable which now does not work as expected anymore but
before gcc-6 using caf_get() (w/o reallocation) did.
Bootstrapped and regtested ok on x86_64-linux/f27. Ok for trunk?
- Andre
--
Andre Vehreschild * Email: vehre ad gmx dot de
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: caf_extend_api.clog
URL: <http://gcc.gnu.org/pipermail/fortran/attachments/20180218/c2a95042/attachment.ksh>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: caf_extend_api.patch
Type: text/x-patch
Size: 35876 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/fortran/attachments/20180218/c2a95042/attachment.bin>
More information about the Fortran
mailing list