Update on shared memory coarrays

Thomas Koenig tkoenig@netcologne.de
Wed Dec 23 10:47:23 GMT 2020


Hi everybody,

after Nicolas' offlineOK, I have now committed the attached patch
to the branch.

This should fix the test cases which are already committed
(hopefully...).  And I did add a FIXME for something that should
be cleaned up at a later date.

Regarding the failures that Steve reported, we'll try to reproduce
this using -m32 bits later - right now, Christmas is approching fast :-)

Best regards

	Thomas


Add offset to allocatable shared coarrays.

This adds the calculation of the offset for allocatable coarrays,
which was missing before, and fixes the resulting fallout for
ALLOCATED.  Additionally, it prepares the way for STAT and ERRMSG
for ALLOCATE of coarrays, but that still needs changes to
gfc_trans_allocate.

gcc/fortran/ChangeLog:

	* trans-array.c (gfc_conv_array_ref): If se->address_only is set,
	throw away all the offset calculation.
	(gfc_allocate_shared_coarray): Add arguments stat, errmsg and
	errlen to call to allocate.  Calculate offset for allocatable
	coarrays.
	(gfc_array_allocate): Adjust call to gfc_allocate_shared_coarray.
	* trans-array.h (gfc_allocate_shared_coarray): Change prototype
	of cas_coarray_alloc.
	* trans-decl.c (gfc_build_builtin_function_decls): Adjust
	cas_coarray_alloc to changed prototypes.
	(gfc_trans_shared_coarray): Adjust call to gfc_allocate_shared_coarray.
	* trans-intrinsic.c (gfc_conv_allocated): Set address_only on se.
	* trans.h: Add flag address_only to gfc_se.

libgfortran/ChangeLog:

	* caf_shared/wrapper.c (cas_coarray_alloc): Add status, error and
	errmsg arguments and their checking.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: p5.diff
Type: text/x-patch
Size: 8345 bytes
Desc: not available
URL: <https://gcc.gnu.org/pipermail/fortran/attachments/20201223/7f1d58c2/attachment-0001.bin>


More information about the Fortran mailing list