[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