[Fortran, PATCH, coarray, v1] Extend caf_*_by_ref () API by a type specifier
Jerry DeLisle
jvdelisle@charter.net
Sun Feb 18 16:53:00 GMT 2018
On 02/18/2018 07:39 AM, Andre Vehreschild wrote:
> 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
>
This is OK from the Fortranners perspective. Should touch base with
release manager. It looks harmless though it changes coarray API, which
is hidden behind -fcoarray=
Regards,
Jerry
More information about the Fortran
mailing list